积累从点滴开始 2012-10-10 14:42
浏览 238
已采纳

hibernate + mysql由于sq语句跨表多而导致执行效率低,这样解决好吗?

我在开发web系统,持久层框架是hibernate,数据库是mysql,由于之前没有考虑到sql执行效率的问题,现在不到10万的数据,查询就很慢了,很棘手啊~

查了一些资料,想到了一个办法,比如,在解决子查询的时候,能否把sql拆开,分部执行,先写一个方法,执行完原来子查询的方法,结果集装入List,然后迭代这个List,再去执行原来sql中,子查询外面的主查询,这样,两步执行完,得到目标结果集,我想知道这种方法和原来的子查询哪个执行效率更高,请各位大侠给予指点~

我觉得sql中包含in、or和exists都对系统是很大的累赘,系统的数据量在持续增长,这是个很棘手的问题啊!

另外,还有其他什么好的优化方法,也请大侠们给予指点啊~

  • 写回答

5条回答 默认 最新

  • applepaihs 2012-10-10 15:30
    关注

    楼上的说的不错,看看哪些查询条件可以加索引的,尽量精简查询条件,另外,排序字段是不是有加索引,能否去掉。
    mysql一般来说500W数据量之后才会有变慢神马滴。。。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!