前言
很多时候,我们写分页查询的时候,只是单纯的想把结果查询出来就好了,但是有没有想过,自己写的分页查询效率会怎么,数据少的是没太大影响,但是多了就会有影响了,所以这篇简单介绍下分页查询的一些基本优化
比如下面的sql
select a,b,c from t1 limit 10000,10;
表示从表 t1 中取出从 10001 行开始的 10 行记录。看似只查询了 10 条记录,实际这条 SQL 是先读取 10010 条记录,然后抛弃前 10000 条记录,然后读到后面 10 条想要的数据。因此要查询一张大表比较靠后的数据,执行效率是非常低的.
为了方便验证,首先创建测试表并写入数据:
use muke; /* 使用muke这个database */
drop table if exists t1; /* 如果表t1存在则删除表t1 */
CREATE TABLE `t1` ( /* 创建表t1 */
`id` int(11) NOT NULL auto_increment,
`a` int(11) DEFAULT NULL,
`b`