я должен использовать хэш-индекс для поиска равенства в MySQL - PullRequest
0 голосов
/ 11 ноября 2010

Если у меня есть таблица, в которой определенные поля всегда ищутся с использованием оператора равенства (где id = 5), было бы лучше использовать хеш-индекс. Я читал, что хеш-индексы лучше подходят для такого рода запросов, но не подходят для запросов диапазона.

Должен ли я использовать хеш-индекс в этом случае. Есть ли недостатки для хэширования в этом сценарии.

Ответы [ 2 ]

1 голос
/ 11 ноября 2010

Вы не можете использовать HASH-индексы с MyISAM или InnoDB.Таким образом, если вы используете хранилище MEMORY или NDB (Cluster) (что, вероятно, нет), вы можете использовать HASH-индексы.

BTree более гибки (вы можете использовать для извлечения отсортированных данных по ключу индексавы можете использовать его для разрешения запросов в диапазоне), поэтому, если у вас нет особого случая (запрос поиска ТОЛЬКО ДЛЯ РАВНОМЕРНОСТИ в специальном хранилище), просто перейдите на BTree.

0 голосов
/ 11 ноября 2010

Вы не можете использовать хеш-индекс на некоторых движках, включая MyISAM и InnoDB.Кроме того, не очевидно, что вы получите улучшение производительности для очень маленьких индексных ключей, таких как однозначные значения (в отличие от многостолбечных индексов или строковых индексов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...