关于热点数据处理想请教一下

当从mysql导入数据,有一张大表并且主键id自增 导入到tidb中导致有tidb中有热点数据,
这时候如果重新导入数据量太大不现实,应该如何处理这张表呢?
直接在这张表上split可以吗?

看看是否可以变更为 auto_random 的主键,自动 split

如果需要手动 split 要考虑前提规划好 region,需要提前生成,但是主键不够分散,仍然会有热点

一定要主键id自增,那就只能使用非聚簇索引表+shade_rowid_bits.

https://docs.pingcap.com/zh/tidb/stable/troubleshoot-hot-spot-issues#使用-shard_row_id_bits-处理热点表

1 个赞

非聚簇表除非tikv数据量很多,要是3个tikv比聚簇表慢不少

现在的问题是,导入完成了?查询的时候有热点?还是导入一半,写入的时候有热点嫌导入的太慢?导入方式是什么?

可是自增id用聚簇是根本没法用的。

没那么夸张,自增默认是也是多个tidb节点分布式各自自增各自的

1 个赞

这么一想好像确实是可以的。

https://docs.pingcap.com/zh/tidb/stable/sql-statement-split-region#语法图

参考这两个链接看看:TiDB 高并发写入场景最佳实践 | TiDB 文档中心

专栏 - TiDB 热点问题详解 | TiDB 社区