文章目录

  • 前言
  • 一、方案一${index}替换#{index}
  • 二、方案二#{index,jdbcType=NVARCAHR}替换#{index}
    • 这样替换之后,也变快了,也能防sql注入。
  • 总结

前言

最近项目组压力测试发现一个BUG,某个分页查询sql在数据量变大之后,在数据库执行正常,在mybatis执行很慢。


一、方案一${index}替换#{index}

代码如下(示例):

#{参数} 换成 '${参数}' 

这样替换之后,确实变快了,但是${}的写法不能防sql注入。

二、方案二#{index,jdbcType=NVARCAHR}替换#{index}

代码如下(示例):

#{参数} 换成 #{参数,jdbcType=NVARCAHR}

这样替换之后,也变快了,也能防sql注入。

总结

以上就是本次BUG的解决过程,原因猜测可能是数据量增长后,执行sql需要花费更多时间确定参数类型,后续有发现再更新。