如果表主键是连续自增的,那在插入数据的时候,只会往一个Region尾部中插入,当这个Region满了之后,自动开辟下一个Region,所有的操作都在一个Region上,也就是一个TIKV上,高并发下请求都是打到同一台TIKV上,有负载风险且不满足分布式资源利用的需求.但是我们一般都是自增主键,或者分布式雪花算法自增主键
如果存在通用的字典表这种也会有热点问题,记得幂等性调用落缓存里
解决方案1: 高并发写入数据时候,放入队列MQ中异步写入
解决方案2: 用离散的随机主键,比如UUID,但是没有自增主键
解决方案3: 用UUID做主键,然后额外在建立一个唯一索引的ID自增列进行冗余
解决方案4: 提前切分N个Region,然后再往里面插入,感觉有点治标不治本,如果提前切分的Region用完了怎么办?
方案3的冗余是否可靠,UUID在TIDB上有性能问题嘛
表分区会影响Region分布吗,假如我以’create_time’按照’年分’进行分区,以’UUID’做主键,假如我同一年有很多数据insert,这种会出现热点问题吗