1、 tidb前面是否使用了haproxy\lvs这类的负载均衡?
2、show table group_info regions 看看region数量,如果仅一个1tikv 负载高,说明有热点。解决热点方式:
(1)使用pd-ctl operator add split-region xxx 或split table 命令分裂region。region分裂后要跑一段时间等待pd做热点调度 或 pd-ctl operator add transfer-leader xxx xx手动调度leader到空闲tikv
(2)重新设计表结构,tidb解决热点的方式有 : bigint 主键设置为auto_random,非bigint主键设置shard_row_id_bits+pre_split_regions , 使用hash分区。默认建新表后region还在原有tikv,在建表前设置tidb_scatter_region变量 ,region会均衡调度。
3、SQL中有order by 所以需要把所有符合条件的查出来后排序,然后取top 11。执行计划中topN_20是在每个tikv上的排序后取top 11然后返回tidb ,在由tidb排序后取top11(即TopN9)