Создание индекса по группе столбцов или отдельный индекс для каждого столбца, что лучше? - PullRequest
0 голосов
/ 25 февраля 2011

Я использовал Советник по настройке ядра СУБД для генерации рекомендаций по индексам для нескольких запросов отдельно.После этого я получил отдельную рекомендацию для каждого запроса.В результате я заметил, что столбец, используемый в одной рекомендации, используется для другой, поскольку запросы зависят от одной и той же таблицы.

Могу ли я создать одну эффективную рекомендацию после выполнения нескольких запросов вместе?

Ответы [ 2 ]

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

Это зависит - меньше, но более широкие индексы обычно лучше - , если ваши запросы действительно используют эти столбцы в широком индексе!

Если у вас есть пять запросов, и каждый из них использует отдельный столбец в предложении WHERE, то один широкий индекс не поможет.

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

Но учтите: порядок ваших столбцов в индексе важен!

Если вы создаете индекс для (col1, col2, col3), он может помочь с запросами, которые имеют условия WHERE col1 = value1 или WHERE col1 = value1 AND col2 = value2.

Однако его нельзя использовать для запроса с предложением WHERE, например WHERE col3 = value3

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

Да.Рекомендуется выполнить всю рабочую нагрузку с помощью советника по настройке ядра базы данных.См. Аналогичный вопрос: Индексирование с помощью советника по настройке ядра СУБД

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