TiDB SQL查询慢问题分析

这种解决方式需要改代码,其实索引建的不合理,更改下索引就解决了

你说的是这个参数, tidb_opt_ordering_index_selectivity_threshold 从 v7.0.0 版本开始引入。

是的,创建组合索引是可行的,但是也有例外。比如它where上面用点 or 或者 in,你这又要愁了。还有一些查询where是不固定的,有可能2个条件,有可能3个条件,有可能4个条件,你咋创建索引呢。

所以直接+0,或者在order by 上搞函数,可以一劳永逸解决此类场景。

核心是过滤性和多个方法的对比,以及成本收益做权衡。还有一个cover索引,如果需要快可以考虑。

要利用索引来避免排序