Я изо всех сил пытаюсь выяснить, в какие столбцы лучше всего помещать мои индексы, когда кажется, что добавление дополнительных индексов может отрицательно повлиять на производительность запроса.
Например, у меня следующий запрос натаблица с 5-метровыми строками;
SELECT col1, col2 FROM table WHERE col1 = 'a' AND col2 = 'b' AND col3 = 'c';
Выполнение этого без индексов занимает 12 секунд!
Я добавляю составной индекс для всех 3 столбцов - table_col1_col2_col3_index
;
Мой запрос теперь падает до 2 секунд - отлично!
Теперь у меня есть другой запрос к той же таблице (без индексов ни для одного столбца):
SELECT col1, col2 FROM table WHERE col1 = 'a';
Запуск этого самостоятельнои запрос занимает 4 секунды - все еще довольно медленно!
Так что теперь я добавляю индекс одного столбца к col1 table_col1_index
Мой запрос уменьшается до 0,2 секунды.Это здорово, однако теперь я снова запускаю исходный запрос и замечаю, что он использует этот индекс, а не тот, который я указывал ранее.Исходный запрос теперь выполняется в течение 6 секунд.
Я не уверен, как добиться того, чтобы оба запроса могли быть оптимизированы одновременно.