TIDB 执行SQL 慢

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【 TiDB 使用环境】
生产环境

【概述】 场景 + 问题概述
多表关联查询,查询的数据量很少,但是查询很慢,对比mysql

【背景】 做过哪些操作
更新过统计信息

【现象】 业务和数据库现象

【问题】 当前遇到的问题

【业务影响】

【TiDB 版本】
v 5.2,3

【应用软件及版本】
使用了navicate

【附件】 相关日志及配置信息
查询结果


执行计划

对比mysql结果

对比mysql查询结果,慢了很多。
与期待的相关很大。

那就用 Mysql 不就好了~ :cowboy_hat_face:

a表的personid应该没有索引,需要添加上。另外如果B表的b.scheduledate,b.personid没有索引则添加索引,如果有则对A表做统计信息搜集。
老兄能否贴下mysql的执行计划看看?

这个原因很多的,能否看下执行计划

执行计划在上面图中

:bomb:

大实话,规模不够的话, tidb 的效率是不如mysql 的 …:custard:

a表的personid有索引 ,b表的 scheduledate,personid也有索引
tidb里执行前更新过统计信息。

mysql的执行计划

大表都是几千万的数据

用户提供的这些场景,不正是tidb需要提升的地方吗
还是tidb不关注这些点。。。

执行计划显示不全,搞个文本脱敏上传一下吧。

看你提供的执行计划,数据量并不是太大… 还是全表扫描

explain.xlsx (10.5 KB)

就是tidb针对这个SQL,并未选择最优的执行计划

提供一下 explain analyze 的结果,主要看下 actRows 和 execution info。
注意:explain analyze 会真实执行

好的,稍等啊

explain2.xlsx (12.1 KB)

特意另了tiflash 节点,效果也不大

慢在A表上,看估算的数据不是很准,这个表的统计信息看一下。
SHOW STATS_HEALTHY A