php MySQL与分页效率
作者:bea
最基本的分页方式: SELECT...FROM...WHERE...ORDERBY...LIMIT... 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引: 举例来说,如果实际SQL类似下面语句,那么在category_id,id两列上建立复合索引比较好: SELECT*FROMarticlesWHEREcategory_id=123ORDERBYidLIMIT50,10 子查询的分页方式: 随着数据量的增加,页数会越来越多,查看后几页的SQL
最基本的分页方式:
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
----------------------------------------
实际可以利用类似策略模式的方式去处理分页,比如判断如果是一百页以内,就使用最基本的分页方式,大于一百页,则使用子查询的分页方式。
猜你喜欢
您可能感兴趣的文章:
- 用PHP进行MySQL删除记录操作代码
- PHP insert语法详解
- PHP添加MySQL数据记录代码
- PHP简单系统查询模块代码打包下载
- PHP组合查询多条件查询实例代码
- php下通过POST还是GET来传值
- PHP页面间传递参数实例代码
- 解决MySQL中文输出变成问号的问题
- PHP中Date获取时间不正确怎么办
- 详解PHP显示MySQL数据的三种方法
- PHP读取MySQL数据代码
- 改变Apache端口等配置修改方法
- MySQL数据源表结构图示
- 快速配置PHPMyAdmin方法
- 比较全的PHP 会话(session 时间设定)使用入门代码
- Excel数据导入Mysql数据库的实现代码
- php中对xml读取的相关函数的介绍一
- php创建多级目录代码
- WindowsXP中快速配置Apache+PHP5+Mysql