У меня есть таблица (Статьи) со следующей структурой:
id int(10) unsigned not_null auto_increment
title varchar(32)
system_id int(10) unsigned default 0
last_update int(10) unsigned default 0
какова рекомендуемая структура индекса для таблицы, которая обеспечит наилучшую производительность для этого запроса:
"SELECT * FROM Articles where system_id = {ID} order by last_update desc"
Я бы добавил оба этих индекса и проверил план EXPLAIN, чтобы узнать, какие из них используются. MySQL иногда выбирает индекс упорядочения, а не фильтрующий, и, следовательно, второй может быть лучше в некоторых случаях.
ALTER TABLE 'Articles' ADD INDEX 'articles_index_1' (system_id, last_update);
ALTER TABLE 'Articles' ADD INDEX 'articles_index_1' (last_update);
Как обсуждалось здесь, начните с колонки =
(system_id
), затем last_update
столбец "range" (last_update
):
INDEX(system_id, last_update)