Насколько больше комбинационный индекс, чем отдельный индекс? - PullRequest
2 голосов
/ 01 февраля 2011

В частности, для MySQL, но я предполагаю, что структуры похожи для большинства брендов SQL. Комбинированные индексы намного больше, чем отдельные индексы? Например, будет ли объем пространства, необходимого для хранения INDEX (col1, col2), таким же, как объем пространства для хранения INDEX (col1) + INXEX (col2)? Я сейчас точно не сталкиваюсь с этим в процессе разработки, просто любопытно.

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

При использовании InnoDB размер объединенного индекса будет примерно равен col1 плюс размер col2 плюс размер первичного ключа таблицы (или 4 байта при использовании MyISAM).

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

1 голос
/ 01 февраля 2011

Нет, это будет меньше, чем сумма обоих индексов. Насколько меньше зависит от различных факторов, таких как кластерный индекс в таблице, его длина и ряд других вещей. Вообще говоря: чем больше col1 и col2, тем больше сумма индексов приблизится к объединенному индексу, потому что тогда они будут доминировать над другими факторами.

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