spring+mybatis 查询慢

同样一条sql
使用navicat 查询 只要0.05秒
但是在代码中使用mybatis查询 要4-5秒
这是什么原因?
图片说明

影响查询效率的因素要知道,
第一,排除一下查询条件menu_id和new_type的索引是不是加上了,
第二,有索引的情况下看看是不是有NULL的值,有NULL的话会进行全表扫描,
第三,数据量大的时候,order by 也会降低速度,看看create_time是什么类型,如果是varchar类型会慢。
第四,你navicat里面加了limit 10了,查询当然快啦。
第五,经过mybatis的封装,程序查询结果返回确实要慢点,但是4-5秒有点不合理了,如果数据量不大的话。
第六,可以使用Redis缓存。

你打印下程序执行sql的日志放到工具执行试试,不然就是你代码问题了

图片说明

图片说明

看起来没什么问题,看时间也确实卡在数据库执行上,存在并发吗?

那就加缓存,加索引,这是解决慢最常用也是最好的方式

理论上是不可能的,mybatis只是一个jdbc封装。如果能够确定sql没问题,建议从下面几个角度检查:
1、将mybatis的debug日志打开,打印出执行sql,对比看看是不是sql写错了,特别注意整数和字符串的区别,比如status是整数,那就绝对不能带引号,这样就不会走索引了
2、执行一条其他sql,看看使用navcat和mybatis执行是否有区别