Создание индексов MySQL - PullRequest
       19

Создание индексов MySQL

4 голосов
/ 23 августа 2011

У меня есть таблица с 10 столбцами, и мне нужно поддерживать фильтры комбинированного диапазона для большинства из них.

Скажем, например:

WHERE column_a >= a_min AND column_a <= a_max 
AND column_b >= b_min AND column_b <= b_max
...

Но это еще не все, мне нужно также поддерживать сортировку данных по разным столбцам.

У меня такой вопрос, учитывая, что возможные комбинации индексов, которые можно создать для оптимизации поиска, огромны, каковы мои возможные варианты?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 23 августа 2011

Создание индексов для каждого столбца в отдельности.Пусть mysql выяснит, как их использовать.

Кроме того, заметьте, что вы привыкли использовать оператор between:

column_a between a_min AND a_max

вместо:

column_a >= a_min AND column_a <= a_max -- ugly and the semantic is not as obvious

Его легче читать и печатать, и он делает точно то же самое.

0 голосов
/ 23 августа 2011

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

(column_a, column_n)

См. Метод доступа к диапазону для составных индексов здесь: http://dev.mysql.com/doc/refman/5.0/en/range-optimization.html

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