Когда использовать составные индексы? - PullRequest
14 голосов
/ 01 июня 2009

Каковы общие правила в отношении использования составных индексов? Когда вы должны их использовать, и когда вы должны избегать их?

Ответы [ 2 ]

15 голосов
/ 01 июня 2009

Составные индексы полезны, когда ваши запросы SELECT часто используют эти столбцы в качестве критериев в предложениях WHERE. Это улучшает скорость поиска. Вам следует избегать их, если они не нужны.

Эта статья содержит действительно хорошую информацию.

9 голосов
/ 01 июня 2009

Запрос, который выбирает только несколько полей, может полностью выполняться в индексе. Например, если у вас есть индекс (OrderId), для этого запроса потребуется поиск в таблице:

select Status from Orders where OrderId = 42

Но если вы добавляете составной индекс (OrderId, Status), механизм может извлечь всю необходимую ему информацию из индекса.

Для сортировки по нескольким столбцам может быть полезен составной индекс. Например, индекс для (LastName, FirstName) будет полезен для этого запроса:

select * from Orders order by LastName, FirsName

Иногда у вас есть уникальная константа в нескольких столбцах. Скажем, например, что вы перезагружаете номера заказов каждый день. Тогда OrderNumber не является уникальным, но (OrderNumber, OrderDayOfYear) является. Вы можете применить это с помощью уникального составного индекса.

Я уверен, что есть много других применений для составного индекса, просто перечислю несколько примеров.

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