Добрый день. Прорабатываю вопрос индексации данных в таблице и в связи с кучей вариаций развития события, не до конца понимаю какие индексы должны быть в разных ситуациях:
1.
SELECT * FROM table_name WHERE col1 = 1;
2.
SELECT * FROM table_name WHERE col1 = 1 AND col2 = 2;
3.
SELECT * FROM table_name WHERE col1 = 1 AND col2 = 2 ORDER BY col3 ASC;
4.
SELECT * FROM table_name WHERE col1 = 1 AND col2 = 2 ORDER BY col3 ASC, col4 DESC;
5.
SELECT * FROM table_name WHERE col1 = 1 AND col2 = 1 AND col3 = 1 OR col4 = 1 ORDER BY col3 ASC, col4 DESC;
Единственное в чем я уверен:
1.
CREATE INDEX col1 ON table_name (col1);
Если можете, напишите примеры для каждого варианта или возможно есть какой-то материал, где хорошо объясняется за индексы. Интересует, как это работает, например, в интернет-магазине, где фильтрация может быть по десятку столбцов?