执行delete后查询慢

删数据看官方是会影响,有点疑惑的是启用tiflash和不启用,删除大量数据后查询时间,tikv 1秒,走tiflash 1分多,想了解删删数据怎么同步到tiflash,自动选择的计划怎么能识别不走tiflash

目前观察到删除大量数据后,指定查询引擎tikv查询速度还比较正常,秒级别 (SELECT /*+ read_from_storage(tikv[query_slow_test1]) */ ),智能选择使用tiflash查询需花费2分钟,删除大量数据后等待10几分钟再查tiflash,毫秒级别

  1. 想了解删删数据怎么同步到tiflash?
    TiFlash 以 Raft Learner 协议从 tikv 接数,从原理上看,本身内部分为 Stable Layer 和 Delta Layer ,删除数据会增加 Delta Layer 的数据量,进而增加整体 Stable Layer + Delta Layer 数据量。还有就是控制变量法,观察删除数据前走 tiflash 的执行计划是否一样,耗时是否一样,实际细节还需借助 TiFlash 面板一步步实锤,每一步慢的细节。from → TiDB + TiFlash : 朝着真 HTAP 平台演进 | PingCAP and TiFlash 源码阅读(一)TiFlash 存储层概览 | PingCAP


  2. 自动选择的计划怎么能识别不走tiflash?
    可以看下该表统计信息表健康度,如果健康度 100% 应该就是优化器未能评估出最优执行计划,需手动 hint (如你操作的那样)。

刚删除完后应该还没做gc呢,10分钟后完成了gc ,那么查询也就变快了

删除完成后还要等待10分钟后完成GC?是否可以手工做GC呢?

清理周期和清理什么时候的数据由tidb_gc_run_interval、tidb_gc_life_time 决定,若是想立刻gc 可以调整这2参数

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