1、问题描述
这是一个线上问题,当进行SQL拼接的时候,后面会跟随where1=1条件, (这里也要注意Mybatis框架), select * from xxoo where 1=1, 该语句将数据全部查询出来,当数据量特别大的时候,服务器会挂掉
2、原始方案(优化前)
select * from user where 1 = 1
该中情况数据量大的时候,服务挂掉
3、改进方案(优化后)
xxxxooo:
query-safety:
# 默认的最大查询记录条数
maxRow: 600
# 是否展示SQL
showSql: true
编写安全模块,将所有语句后面添加上limit 600;
执行sql如下:
select * from user where 1 = 1 limit 600