每天洗数据导致二级索引写热点

【 TiDB 使用环境】生产环境 【 TiDB 版本】5.0.4 【遇到的问题】 数据同步导致二级索引写热点 【复现路径】做过哪些操作出现的问题`
【问题现象及影响】

表结构:
D_CREATED_AT` datetime DEFAULT NULL COMMENT '创建时间',

主键热点已经拆分:


热力图:

【附件】

索引region数量

问题:

  1. 如何解决每天批量洗数据导致的 write stall 热点问题。
  2. 是否推荐拆分索引 region解决热点问题
    SPLIT TABLE t INDEX idx2 BETWEEN ("2010-01-01 00:00:00") AND ("2020-01-01 00:00:00") REGIONS 10;

是出现write stall了么? write stall有相应的参数可以调大些 延缓一些,不同的write stall可从tikv detail监控中看。
2. 数据清洗写入数据是时间列是递增的吗?如果递增的话 这样拆分region 没有意义。 可以结合业务考虑是否保留这个时间列索引或者前面加上其他列做组合索引。

2 个赞
  1. 我这边处理下
  2. 【是时间列是递增】 是的。
    如果做组合索引的话,要把其他列加到前面? (id, d_create_at),如果加成 (d_create_at,id) 能起到打散region效果么。

如果write stall 可以看看这里https://docs.pingcap.com/zh/tidb/dev/rocksdb-overview#rocksdb-的空间占用

  • 如果遇到了 Write Stall,可以先调大 rocksdb.max-background-jobs 的取值。
  • 如果还是存在问题,可将 rocksdb.max-sub-compactions 设置为 2 或者 3。
1 个赞

好的呢,我去试试。感恩

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