mybatis sql查询条件有时间时查询效率非常慢
来源:互联网 发布:临沂软件开发培训 编辑:程序博客网 时间:2024/06/13 03:48
最近在进行开发时发现一个奇葩的问题,sql在数据库查询速度不过1秒都不到在在后台却发现非常慢,通过打印dao方法时间和看mybatis log发现速度确实是很慢不是其他问题,然后一步步测试,首先加上<![CDATA[]]> 加在整个sql都没用,然后加上<if></>判断发现时间快了点,但还是属于慢,这里发现很奇葩的问题,比如网上查询时间段说什么>,=要转义,经过一步步测试我可以直接写> ,不过<需要转义成< 实践才是那什么真理的,通过打印sql执行时间明确了确实是执行速度慢而不是转json或者其他环节慢,然后通过更换<![CDATA[]]>,还有< 等转义字符发现问题依旧,然后通过写死时间格式为2017-09-25 00:00:00,发现这样速度跟数据库查询一致了,加上参数后就变慢了,这让我确定问题是存在于mybatis底层,可惜我没时间也没能力研究底层,这问题只能将解决方法放在这里,具体原因我会寻求mybatis社区发现这个问题,如果也有大神知道的话希望告诉我,将#换成$发现这问题才消失。真是很无语。
代码放下吧
<!-- 查询部分sql --><sql id="queryCriteria"><if test="StartOperateTime != null"> and ta.OperateTime >= '${StartOperateTime}' </if> <if test="EndOperateTime != null">and ta.OperateTime <= '${EndOperateTime}'</if> <if test="CompanyName != null">and tv.DriverName = '%${TrsptDriverName}%'</if></sql>
最后总结下问题:1:不能随便信网上的东西xml中可以写>, <需要转义 2:mybatis原理需要探究下。
阅读全文
1 0
- mybatis sql查询条件有时间时查询效率非常慢
- SQL 时间条件查询
- Sql 时间条件查询语句
- sql 时间范围查询条件
- oracle 使用自定义函数查询条件效率非常低
- Mybatis动态SQL 条件查询,批量删除
- mybatis分页条件查询动态sql
- Mybatis中动态sql(多条件查询)
- 条件查询&SQL查询
- 关于模糊查询时的索引问题.(了解一下,对提高代码效率非常有好处)
- mysql查看慢查询、分析执行SQL的效率
- mybatis拼接条件查询
- MyBatis动态条件查询
- Mybatis实现条件查询
- MyBatis多条件查询
- Mybatis条件查询
- mybatis拼接查询条件
- mybatis Example条件查询
- Token ,Cookie和Session的区别--学习笔记
- c#中类的学习以及使用方法
- 为什么traceroute显示的路由和route显示的路由信息不一致?
- Android MediaPlayer 常用方法介绍
- 未来 3~5 年内,哪个方向的机器学习人才最紧缺?
- mybatis sql查询条件有时间时查询效率非常慢
- java线程池(三) Executors.newSingleThreadExecutor
- 浅析函数式编程与命令式编程的区别
- 使用babel转换 es6-- 其中一坑
- Java笔记——常用的格式控制符号和常用的忽略符号
- maven打包相关命令
- 数据结构实验之栈与队列一:进制转换
- camera理论基础和工作原理
- JSP的内置对象--(使用request对象获取请求)