MySQL 迁移 TiDB 后出现查询速度反而降低的情况

从这里看,主要占用时间出在TiDB这块,不知道这个判断是否准确,然后怎么进行相应优化
https://docs.pingcap.com/zh/tidb/stable/dashboard-diagnostics-report#time-consumed-by-each-component

优化业务比这个有效果…

明白,现在能否帮忙往这个方向看下
业务迁移后速度降低,如何在业务不变的情况,去提升到原来甚至更快的速度

这个数据,在业务层面不能考虑检查的方式么?那如果是这种需求,做分区就不合理

导入是否可以按分区范围导入?即先对导入的数据按日期划分,然后按日期段检查并导入。

根据创建时间分区,而导入新的数据这种情况,需要检查表中是否存在记录,检查创建时间范围会是需要在全表

之前进行分区,条件会在更新单条数据、搜索时用到,如果撤掉分区,就算导入数据时的判断速度满足需求,可能其他用到分区条件的地方会受到影响

因此,如果能针对Compile_time,Optimize_time这两反映的TiDB模块调整,就能达到迁移后统计、查询速度都提升的效果

又或者增加TiKV节点是否能分担计算以提高速度

是说让客户选择日期范围,方向似乎可行,只是这样会涉及业务调整呢

不是,我的意思是比如客户导入2021-09-01、2021-09-02、2021-07-01三天的数据,程序可以将一次导入变成两次导入,分别导入7月和9月的,每次导入时先判断这一个月内有没有重复,没有重复就导入。

当然前提是导入数据中包含时间信息。

程序该调整就调整,整体优化才是真正的优化,不能只把压力强加在DBA上。

业务优化方案才是正解

好的 谢谢 整体优化才是更全面更彻底的

好的 谢谢你的时间

关注到分析结果里分区存在较多的 stats:pseudo ,这表示需要重新收集统计信息。

https://docs.pingcap.com/zh/tidb/stable/explain-walkthrough#评估当前的性能

好的,
关注到语句plan中实际时间是78.9ms,


而慢日志中,显示的Compile_time、Optimize_time占用达到300+ms,所以想问下除了analyze table xxx更新统计信息之外,如何去影响Compile_time、Optimize_time这两个时间

请问下,把有分区的表结构变成没有分区的表结构,TiDB如何进行操作

https://docs.pingcap.com/zh/tidb/stable/partitioned-table#分区管理

我建议你在测试环境,先测试一下,免得影响了生产

好的 谢谢~

:+1::+1::+1:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。