积累从点滴开始 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条)

报告相同问题?

悬赏问题

  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突