Mysql Поиск первичного ключа - PullRequest
0 голосов
/ 07 февраля 2012

Может ли кто-нибудь объяснить, какой индексированный поиск будет быстрее, перечисляя от самого быстрого до самого медленного в таблице с 1 миллионом строк .?

index: шестнадцатеричный

index: decimal

индекс: символы Юникода ∓ ∞

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Большая часть этого определяется длиной ключа.Это означает:

Буквенно-цифровые клавиши длиннее 4 байтов (~ 4 символа) будут выполнять меньше целого числа (= 4 байта)

Таким образом, целые / десятичные клавиши будутвыступить довольно хорошо.Unicode был бы самым бедным из ваших примеров.

Разница между hexaDECIMAL и десятичной дробью - ничто: до тех пор, пока он все еще умещается в 4 байта.Если вы превысите это, производительность ухудшится.

0 голосов
/ 07 февраля 2012

Я надеюсь, что вы не найдете разницы в производительности в случае любого из этих типов.

Поскольку другие факторы (например, скорость дискового ввода-вывода) потребляют гораздо больше времени, и это скрывает любые различия в поиске по b-дереву с использованием десятичных и строковых ключей.

...