【TiDB 4.0 PCTA 学习笔记】- 3.7.8 How to Deal With Hotspot Issues @2班+马志林

课程名称: 【TiDB 4.0 PCTA 学习笔记】- 3.7.8 How to Deal With Hotspot Issues (如何处理数据热点问题)

学习时长:15m

课程收获:

了解如何处理 TiDB 集群的热点问题

课程内容:

一、热点问题分析
热点 即 数据的一小部分,承载了远超于其余部分的负载(QPS、CPU等)
%E5%9B%BE%E7%89%87

%E5%9B%BE%E7%89%87
顺序写问题,大多数热点问题都是由顺序写导致。
无主键、无int类型的主键,tidb会自动创建row-id 也是顺序写

%E5%9B%BE%E7%89%87
热点小表,特别小的一段数据被热点频繁访问,
由于数据小,往往分布在单一region内,
tidb无法通过调度手段分散热点,读热点居多,
往往是大范围扫描操作或coprocessor存在大量的下推表达式计算

%E5%9B%BE%E7%89%87
region分布偏斜

二、处理热点问题的手段
%E5%9B%BE%E7%89%87
分区表,使用hash分区

%E5%9B%BE%E7%89%87
让 row-id更加随机,而不是严格的递增

%E5%9B%BE%E7%89%87
预分裂region ,效果最好,
不仅可以根据数据分布情况提前将表的region分裂为合适的数量,还可以主动发起调度,使这些空region在集群中均匀分布;
缺点是需要进行额外操作,对数据的数值范围和分布有一些了解

%E5%9B%BE%E7%89%87
针对小表读热点问题

%E5%9B%BE%E7%89%87
针对region分布偏斜问题

%E5%9B%BE%E7%89%87
针对region分布偏斜问题的非常规手段(其他方式都不起作用的情况下)