Каковы общие правила использования составных индексов? Когда вы должны использовать их, и когда вы должны их избегать?Когда использовать составные индексы?
ответ
Запрос, который выбирает только несколько полей, может полностью работать с индексом. Например, если у вас есть индекс (OrderId) этот запрос будет требовать просмотра таблицы:
select Status from Orders where OrderId = 42
Но если добавить составной индекс на (OrderId, Status) двигатель может получить всю необходимую информацию из индекс.
Сортировка по нескольким столбцам может быть полезной из составного индекса. Например, индекс (LastName, FirstName) выиграл бы этот запрос:
select * from Orders order by LastName, FirsName
Иногда у вас есть уникальный constrant на нескольких колонках. Скажем, например, что вы перезапускаете номера заказов каждый день. Тогда OrderNumber не уникален, но (OrderNumber, OrderDayOfYear). Вы можете применять это с уникальным составным индексом.
Я уверен, что существует много других применений для составного индекса, просто перечисляя несколько примеров.
Композитные индексы полезны, когда ваши запросы SELECT часто используют эти столбцы в качестве критериев в предложениях WHERE. Он улучшает скорость поиска. Вы должны избегать их, если они не нужны.
Этот article содержит некоторые действительно хорошие сведения.
+1 для статьи –
+1 для хорошей справки. Есть ли аналогичная статья для Oracle? – hsalimi
- 1. Как работают составные индексы?
- 2. MongoDB понимает составные индексы
- 3. Составные индексы в SQL
- 4. Составные индексы на MongoDB
- 5. Sphinx составные (распределенные) большие индексы
- 6. Составные индексы в Apache Cassandra
- 7. Составные индексы заказа в Монго
- 8. Содержит ли составные индексы производительность?
- 9. Индексы MySQL: составные против столбца
- 10. Google App Engine Datastore не-составные индексы
- 11. Кассандра, использующая составные индексы и вторичные вместе
- 12. Liquibase: проверьте составные индексы по столбцам
- 13. App Engine DataStore - Составные индексы - индексы хранилища данных - не работают
- 14. Laravel 5 - Составные ключевые индексы при миграции
- 15. Как сделать составные индексы в DocumentDB
- 16. MongoDB: Составные индексы на «Где» -Выбери
- 17. Когда использовать индексы вместо полей
- 18. Когда/зачем использовать (комбинированные) индексы?
- 19. В полностью нормированном db, когда мне следует использовать составные индексы против таблиц соединений?
- 20. Используйте составные индексы при использовании Актов в качестве арендатора
- 21. Содержит ли составные индексы в MySql в обоих направлениях?
- 22. Как заставить составные индексы появляться в облаке Google?
- 23. Как использовать составные элементы управления
- 24. Основные данные: составные индексы не создаются на дочернем объекте
- 25. Как регулярные и составные индексы реализованы в RDB?
- 26. Как создать составные индексы хранилища данных google через REST API?
- 27. MongoDB добавить поля с низкой мощностью в составные индексы?
- 28. PostgreSQL - Когда индексы собираются и когда использовать КОНКУРЕНТНО?
- 29. Mongo Java Весенние составные индексы не будут установлены, и он очищает ранее установленные индексы
- 30. составные столбчатые клавиши и составные клавиши строк
где OrderId = 42 => нет необходимости в композитном, только OrderId. Morevoer составной (Id, OrderId) не поможет, его можно использовать только для запроса с использованием Id или Id и OrderId. Я не эксперт по БД, но я не уверен, что составной индекс (если он не кластеризован) действительно полезен для выбора * –
@Guillaume: означает индекс в (OrderId, Status), отредактированный в ответе. – Andomar