我有一张表(文章),结构如下:
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"
答案 0 :(得分:1)
正如here所述,从=
列(system_id
)开始,然后是"范围"列(last_update
):
INDEX(system_id, last_update)
答案 1 :(得分:1)
我会添加这两个索引并检查EXPLAIN计划以查看它们中的哪些使用。 MySQL有时会选择排序索引而不是过滤索引,因此在某些情况下,第二个可能会更好。
ALTER TABLE `Articles` ADD INDEX `articles_index_1` (system_id, last_update);
ALTER TABLE `Articles` ADD INDEX `articles_index_1` (last_update);