作者:LAMP小白 点击:2638 发布日期:2012-09-20 00:49:00 返回列表
1,问题:
我们使用的分页一般是框架自带的Pager类,使用 limit offset, per_page来分页,当数据量过大时,会出现严重的性能问题:随着limit偏移量增大,sql查询时间线性增加。
2,改进办法:
在sql中使用WHERE语句减少查出的结果条数,再相对于上次分页定limit偏移量:
WHERE ‘唯一字段’ >(<) 上一次的唯一字段的最大值(最小值) LIMIT 当前分页相对于上一次分页的偏移量, 每页条数;
类似于:
SELECT * FROM `comment_news` WHERE res_id='123456' AND parent_id='0' AND status='1' AND update_time_ms >'999997718799' ORDER BY `update_time_ms` DESC LIMIT 30, 30
为了防止分页重复和丢失数据,使用值不重复或者几乎不重复的字段来筛选
这种办法第一页的查询sql还是得和平常limit分页一样,才能建立偏移
上一篇:C语言格式输出符 下一篇:快递查询API