2015-11-22 2 views
0

У меня есть запрос, как это:Индексы на столбцах - Два отдельных индекса VS Один групповой индекс?

select sum(col1) from table where col2 = 'X' and col3 = 'Y'; 

Теперь я хочу знать, какой из них лучше?

Разделенные индексы:

KEY `col2` (`col2`), 
    KEY `col3` (`col3`) 

Группа индексов:

KEY `both` (`col2`,`col3`) 

Кроме того, я хочу знать, col1 потребности в индексе?

+1

Было бы быстрее протестировать, чем задавать – Strawberry

+0

@Strawberry. Существует ли какое-либо конкретное правило? – Shafizadeh

+0

Я думаю, что вы можете определить (некоторые из них) через тестирование - но ответ ниже элегантно инкапсулирует два ключевых момента – Strawberry

ответ

2
where col2 = 'X' and col3 = 'Y'; 

Это КУДА диктует использование индекса соединения:

KEY `both` (`col2`,`col3`) 

col1 не нужно индексировать, так как вы не WHEREing на нем.

Примечание: если у вас есть и другие вопросы, которые делают WHERE на col3 без col2, ответ может отличаться ..

+0

А я вижу. Благодарю. +1 – Shafizadeh

Смежные вопросы