mybatis对象关系映射获取数据好慢,怎么破

华夏百家 2018-06-14 03:22:56
mybatis3.3.1
spring4.3.2

查询10条数据500ms
查询150条 10000ms

从未遇到过这个问题
...全文
1859 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
华夏百家 2018-06-19
  • 打赏
  • 举报
回复
问题找到了,忘了过来结贴,,, 其实问题主要是开发人员,把获取日期设置成了百度接口的日期时间,而且改动的时候没有跟我说。 导致每次创建对象都往百度那里请求一次数据,因为对象初始化的时候是默认获取日期的,每个对象生成都存在网络延时,
appleyk 2018-06-15
  • 打赏
  • 举报
回复
啧啧啧,我查100个对象,一个对象里面的数据关联十几张表,查询耗时170ms




优化查询:

1:切忌demo中循环里面套sql语句
2:谨慎使用where xx in(),如果有用到in,最好使用关联模式【select*from table A where id in(select id from table B)】,如果直接使用in(params)会很慢
3:使用Mybatis的批量查询
4:使用AOP对方法的执行做个时间统计,一目了然
5:最后就是在数据库中跑一遍你项目中的sql语句,做个比对
  • 打赏
  • 举报
回复
EXPLAIN 一下看看你的sql扫描了多少数据
getdate 2018-06-15
  • 打赏
  • 举报
回复
其实这个需要自己清楚瓶颈具体在哪里? 比如是不是网络问题; 比如是不是SQL问题; 根据瓶颈的根源来具体解决问题.
verejava 2018-06-14
  • 打赏
  • 举报
回复
优化 sql
oyljerry 2018-06-14
  • 打赏
  • 举报
回复
直接SQL查询看看是否慢
m小锤子m 2018-06-14
  • 打赏
  • 举报
回复
你的sql肯定写的不太好,连表没优化到位
stacksoverflow 2018-06-14
  • 打赏
  • 举报
回复
先搞清楚慢在哪,是sql执行慢,还是取到数据后做关系映射慢。 另外有没有特别大的字段或是特殊的字段。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧