xh176233756 2010-12-19 04:09
浏览 379
已采纳

MySQL Hibernate分页效率问题

4万多条数据,分页,每页取20条数据。用的MySQL+Hibernate。
每翻一页居然要两三秒!!!其中有where子句,发现满足条件的总结果数越多,翻页越慢。
非常想知道怎样提速。
服务器1G内存 AMD4000+, 这个规模的数据,达到多少秒算正常。

代码如下:http://code.google.com/p/virtual-judge/source/browse/trunk/judge/src/judge/action/ProblemAction.java?r=95#309

  • 写回答

3条回答

  • andy_javahome 2010-12-19 12:29
    关注

    个人认为用hibernate自带的分页和mysql的limit效率差不多,都是每次取出20条数据,并非全部取出用程序处理。
    传说mysql能自动优化,但你要是处理好执行顺序应该速度会快很多。

    开始->FROM子句->WHERE子句->GROUP BY子句->HAVING子句->ORDER BY子句->SELECT子句->LIMIT子句->最终结果
    
    每个子句执行后都会产生一个中间结果,供接下来的子句使用,如果不存在某个子句,就跳过,你可以尽量让中间每次结果少一些。至于from和where内容的执行顺序我只知道Oracle的,不知道mysql的。
    再有就是写好索引,也能提高效率。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿