172 похожих чатов

Спасибо, понял, попробую. Может тупой вопрос, но почему оно должно быть

быстрее?
Я не DB инженер, обычний java dev. =)

14 ответов

12 просмотров

Вопрос и правда... неверный. Если вы хоть когда-нибудь задумывались как идет проверка уникальности, то понятно что надо сравнивать 2 значения. 8ми байтовое сравнивается за 1 CMP инструкцию на 64х битных процах, а VARCHAR во первых может храниться в TOAST'е, а во-вторых сравнивается как строка, а это 32 что-ли символа, которые сравниваются как строка, то есть это пару сотен тактов.

Это вопрос про bigint vs varchar в индексах?

Viktor-Fedinchuk Автор вопроса
Warstone
Вопрос и правда... неверный. Если вы хоть когда-ни...

Осталось выяснить насколько влияют эти сравнения в реальных условиях на современных процессорах

maxp.dev
Осталось выяснить насколько влияют эти сравнения в...

Если вам не достаточно теоретического понимания что от процессора тут не зависит ничего, то проверяйте.

Viktor-Fedinchuk Автор вопроса
maxp.dev
Осталось выяснить насколько влияют эти сравнения в...

ну тут понятно что комперить 64 бита можно в 1 такт, а вот строка может иметь много символов, в один такт может не влезть =)

Viktor Fedinchuk
ну тут понятно что комперить 64 бита можно в 1 так...

Один или десять тактов тут могут ничего не решить - надо смотреть совокупно

sexxst
Влияют и сильно

давай посмотрим как именно?

Аггей Лоскутников
Сравнение строк - тоже есть инструкция ж

она была актуальна на процессорах 8086 и я даже ее успешно сипользовал, а вот на 80286 стало уже не очень

maxp.dev
давай посмотрим как именно?

Я цифр приводить не буду, потому что сейчас у меня их нет, а тесты мне делать откровенно лень. Но могу точно сказать что в последний раз у меня буквально в разы отличалось на приблизительно аналогичных типах данных.

sexxst
Я цифр приводить не буду, потому что сейчас у меня...

так давай посмотрим-таки? вот я выше приводил ссылку на гист, где помярял bigint/varchar джоины на табличках с миллионом записей

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта