MySQL Hibernate分页效率问题 80
4万多条数据,分页,每页取20条数据。用的MySQL+Hibernate。每翻一页居然要两三秒!!!其中有where子句,发现满足条件的总结果数越多,翻页越慢。非常想知道...
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 展开
每翻一页居然要两三秒!!!其中有where子句,发现满足条件的总结果数越多,翻页越慢。
非常想知道怎样提速。
服务器1G内存 AMD4000+, 这个规模的数据,达到多少秒算正常。
代码如下:http://code.google.com/p/virtual-judge/source/browse/trunk/judge/src/judge/action/ProblemAction.java?r=95#309 展开
展开全部
分页一般都是后台分页,是在sql级别的分页,不管符合条件的记录数有多少,每次取出的记录数做多是每页的数据,即20条
每次查询需要操作两次数据库,一次取得记录数目,一次取得记录
看了你的代码,其中有两个方法
baseService.count 和 baseService.list 应该分别是计算数目和取记录的
不清楚方法如何实现,建议你从这两个方法实现入手优化
其中baseService.count 在listProblem方法中执行了两次,可以优化为一次
每次查询需要操作两次数据库,一次取得记录数目,一次取得记录
看了你的代码,其中有两个方法
baseService.count 和 baseService.list 应该分别是计算数目和取记录的
不清楚方法如何实现,建议你从这两个方法实现入手优化
其中baseService.count 在listProblem方法中执行了两次,可以优化为一次
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只是单纯的提高效率,那么你可以用limit关键字,这是mysql自身一个关键字,这可以提高效率,毕竟数据库去给我们做分页,比我们自己代码实现分页快的多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对指定的字段创建索引、、、、
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询