порядок столбцов при создании составного индекса базы данных - PullRequest
0 голосов
/ 31 мая 2011

При создании составного индекса базы данных что должно влиять на порядок полей?

Например, предположим, что я создаю составной индекс на основе ДАТА, ЦЕНА, ОБЪЕМ, что должно влиять на то, создаю ли я

DATE, PRICE, VOLUME
VOLUME, DATE, PRICE
.
.
.

Предположительно, один из них больше подходит для конкретных типов запросов, но я не знаю, какие именно.

1 Ответ

2 голосов
/ 31 мая 2011

Первая будет использоваться, если вы фильтруете (или ищите) записи по DATE, или DATE and PRICE, или DATE,PRICE,VOLUME. Он не будет использоваться, если вы фильтруете записи, например, по VOLUME. Второй будет использоваться для запросов, где условие поиска включает VOLUME, или VOLUME and DATE, или VOLUME,DATE,and PRICE.

Точнее, индексы также можно использовать при использовании индексированных столбцов в GROUP BY и ORDER BY.

Некоторые примеры:
Индекс 1 (DATE,PRICE,VOLUME)
Индекс 2 (VOLUME,DATE,PRICE)

SELECT * FROM table1 WHERE `DATE` = '2011-10-01'; //Index 1 used, Index 2 not used
SELECT * FROM table1 WHERE `VOLUME` = '111'; //Index 1 not used, Index 2 used
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...