大佬们,TiDB 里 AUTO_INCREMENT 自增主键是不是个坑啊?我看文档说会产生写入热点,那是不是所有表都要改成 AUTO_RANDOM?改完对 range 查询有啥影响不?

  1. 大佬们,TiDB 里 AUTO_INCREMENT 自增主键是不是个坑啊?我看文档说会产生写入热点,那是不是所有表都要改成 AUTO_RANDOM ?改完对 range 查询有啥影响不?

AUTO_INCREMENT = 高并发写入必热点;AUTO_RANDOM = 写入无热点,但 range / 排序变慢。
高并发写入 → AUTO_RANDOM
*低并发 / 强有序查询 → AUTO_INCREMENT

2 个赞

AUTO_INCREMENT 在写入频繁的大表上确实是坑**,会导致写入热点。但不是所有表都必须改:小表、只读表或写入不频繁的表无需改动。

AUTO_RANDOM 对 range 查询有负面影响**:数据随机分布,范围扫描会跨多个 Region,效率低于连续的 AUTO_INCREMENT。建议仅在写入热点明显的表上使用,读多写少或依赖范围查询的场景慎用。

1 个赞

分布式选型关键在CAP取舍,TiDB优先保证CP适用于强一致需求。

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