WHERE col1和ORDER BY col2会在(col1,col2)上使用复合键吗?

时间:2013-11-26 17:09:00

标签: mysql

我有一个数据库表(可能很大,将来有数亿条记录),我会经常执行以下查询:

select *
from table1
where col1 = [some number]
order by col2

显然在“col1”上有一个索引可以让它快速运行。 col1不是唯一的,因此将返回许多行(我期望的2000+)。

在(col1,col2)上创建索引是否有意义? MySQL会将它用于此查询吗?

另外,如果我只是在没有“order by”部分的情况下进行查询,那么这个索引是否也可用于“where”部分?

1 个答案:

答案 0 :(得分:1)


是的,它会有所帮助,mysql将使用复合索引,第一部分在WHERE上,第二部分在ORDER BY上。您可以在此处阅读有关ORDER BY优化的信息:http://dev.mysql.com/doc/refman/5.5/en/order-by-optimization.html