有一个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,但不支持联合索引。
是否有优化此查询的解决方案?
答案 0 :(得分:2)
您可以如下创建Composite Index
:
CREATE INDEX index_name
ON table_name(A,B,C);
来自manual:
即使
ORDER BY
与索引不完全匹配,也可以使用索引,只要索引的所有未使用部分和所有额外的ORDER BY
列都是{中的常量{1}}子句。