怎么让分页更高效
来源:互联网 发布:阿里云企业邮箱价格 编辑:程序博客网 时间:2024/04/29 00:22
最基本的分页方式:
SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT ...
在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引:
举例来说,如果实际SQL类似下面语句,那么在category_id, id两列上建立复合索引比较好:
SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 50, 10
子查询的分页方式:
随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:
SELECT * FROM articles WHERE category_id = 123 ORDER BY id LIMIT 10000, 10
一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。
此时,我们可以通过子查询的方式来提高分页效率,大致如下:
SELECT * FROM articles WHERE category_id = 123 AND id >= (
SELECT id FROM articles ORDER BY id LIMIT 10000, 1
) LIMIT 10
----------------------------------------
实际可以利用类似策略模式的方式去处理分页,比如判断如果是一百页以内,就使用最基本的分页方式,大于一百页,则使用子查询的分页方式。
详细出处参考:http://www.jb51.net/article/14649.htm
- 怎么让分页更高效
- 怎么让移动开发更高效
- 让C语言更高效
- 善用Google日历,让做事更高效
- 让大脑更高效的心理技巧
- 让Android UI性能更高效
- 让C程序更高效--持续完善
- 让Python更高效的技巧
- 如何使用才能让缓存更高效
- 让云应用开发更高效
- 如何让你的工作更高效
- 如何让你的阅读更高效
- 如何让冒泡排序更高效
- 如何让每一天更高效更有意义
- 怎么让生活更有活力
- 城市怎么让生活更美好?
- 怎么才能让自己更优秀!
- 怎么让代码的逻辑更清晰?
- Outlook中老是出来“信息检索” -- 解决方法
- SQLiteOpenHelper简介
- js判断浏览器方法
- 使用Pyinstaller打包Python脚本
- ajax解析jso的三种方案
- 怎么让分页更高效
- google 地图 API 参考 .
- find your present
- Android--Telephony
- axis2结合spring发布
- myeclipse svn插件安装(link)
- Google Map API 应用实例说明 .
- 计算一篇文章中英文单词的个数
- LoadRunner_Linux 性能计数器详解_Average Load