1、使用pagehelper后跨表查询奇慢无比
shardingsphere后面的版本还没试过,在目前版本时,结合mybatis + pagehelper组件是有存在问题的。在
Shardingsphere 4.0.0-RC1和pagehelper分页时报错解决 一文解决了冲突,没想到后来又发现新的问题,在进行分表时,每个表数据几百万,查询跨几个表时,发现要等几分钟才出来结果。这样比单库查询加索引查还慢,一时很崩溃,本来分库分表为了提高速度,现在反而速度更慢了。后来在查询前把
PageHelper.startPage(pageNum, pageSize);
注释掉,刷刷一下子出来结果了。看来如果要实现分页还是自己实现。
2、查询语句太复杂,不走分片规则,进行全库查询
原来sql语句片段如下:
(VALUE1 LIKE concat(#(value,jdbcType=VARCHAR},%) AND TYPE = 1) OR
(VALUE2 LIKE concat(#(value,jdbcType=VARCHAR},%) AND TYPE = 2) OR
(VALUE2 LIKE concat(#(value,jdbcType=VARCHAR},%) AND TYPE = 3)
没有调用到分片规则,后来把sql改简单后就正常了。例如下面的
TYPE != 4 AND VALUE1 LIKE concat(#(value,jdbcType=VARCHAR},%) OR VALUE2 LIKE concat(#(value,jdbcType=VARCHAR},%)