版本:v2.1.5
有一张unique模型的表,使用sessionId作为unique key
查询模型:
select count(*) from table where sessionId in ('xxx','xxx'...)
问题:
当sessionId in的list中元素个数<=48个时,查询性能极高
而元素个数>48个时,前缀索引失效,表全扫
以下是当元素为48个和49个的profile对比
48个:
49个:
经验证,max_scan_key_num默认值为48,session变量 set max_scan_key_num = 49之后,即可恢复正常的性能;
但不能因为无法并行处理所有key range 就直接全扫,这个逻辑不合理