使用条件和排序的SQL限制查询优化

时间:2019-11-22 07:47:45

标签: mysql optimization

有一个SQL:

select * from table where A=cid order by B desc, C desc limit lower_bound, 10;

每个列都有其索引。

lower_bound很大时,查询时间很长。因为表中有10亿条记录,所以cid中有一些记录超过1000万。

我尝试添加联合索引(A, B, C)。我的数据库基于MySQL,但不支持联合索引。

是否有优化此查询的解决方案?

1 个答案:

答案 0 :(得分:2)

您可以如下创建Composite Index

CREATE INDEX index_name 
ON table_name(A,B,C);

来自manual

  

即使ORDER BY与索引不完全匹配,也可以使用索引,只要索引的所有未使用部分和所有额外的ORDER BY列都是{中的常量{1}}子句。

MySQL Composite Index