Tidb查询速度很慢,即使是通过索引查询

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
当前集群有两个Tidb集群,其中Tidb1是外部数据入库的集群,Tidb2是负责向外提供查询的集群,通过Br和jdbc的方式将Tidb1的数据向Tidb2进行同步,今天早上4点Tidb1的数据向Tidb2的数据同步完成(通过Br工具),但现在Tidb2的查询速度很慢,即使通过主键进行查询。通过监控看到Tidb2的集群截图如下:


通过一个Id查询需要3分钟,这种情况大概是什么原因引起的呢?有没遇到过类似情况的啊。。

explain 看看,有没有用上索引

1 个赞

一般刚导进来可以手动执行下analyze,然后再看看是否还是慢。
如果还有问题,可以对比下两边的执行计划是否一致。

1 个赞

最好是能给出执行计划,能看看到底是哪里慢了。

这个是怎么操作呢?有连接不


这个是explain的执行计划

1 个赞

使用explain analyze执行看看呢?explain不如explain analyze准确。
另外看看dashboard里的慢查询页面明细的时间使用情况,看看是哪一步时间使用的比较多?

1 个赞

explain analyze select * from t1 limit 5; 这样看下

看起来是点查,竟然这么慢?
用analyze看看,贴上来。
顺便再用 trace 试试。
trace select ****

tikv的cpu负载如此高,我建议登录tikv服务器执行top查看是不是tikv进程占用的cpu

然后通过sql
select * from INFORMATION_SCHEMA.CLUSTER_PROCESSLIST t where t.COMMAND<>‘Sleep’
ORDER BY time desc
看看有没有长时间执行的sql卡住了

再看看
show ANALYZE status,有没有再跑的分析

1 个赞

这个我登上去看过,确实是Tidb的进程占用了CPU,并且现在是所有的查询都很慢。


感觉也看不出来啥


这是explain analyzed的输出

执行下analyze table 后再试下

现在我都想重启集群再试试了

看这个输出,time 85.2ms ,虽说对于点查也不算快,但是没有慢到3分钟的情况,难道客户端返回用了很久?你从客户端ping一下tidb server的地址看看延迟。

image
ping都是正常的

可以给个执行的示例吗

ANALYZE TABLE table_name;

是这个语句执行慢?