MYSQL LIMIT基本语法、分页原理以及简单的优化方法

1、limit的基本用法:

   SQL 语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset  

select * from table limit 5;//搜索前5条记录,limit 5 等于 limit 0,5 (limit 偏移量,条数)  

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。

LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。        

如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。        

初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

select * from table limit 7,2 //表示获取第8条到9条数据

select * from table limit 7,-1 //表示获取从第8条数据开始后面所有的数据

select * from biz_water_user limit 1 offset 1;

select * from biz_water_user limit 1,1;

上面两条sql查询出的数据是一样的;

2、limit 分页查询

MYSQL的limit m n工作原理就是先读取前面m+n条记录,然后抛弃前m条,读后面n条想要的,所以m越大,偏移量越大,性能就越差。

推荐分页查询方法:

1、尽量给出查询的大致范围

SELECT a1,a2,a3... FROM table WHERE id>=20000 LIMIT 10;
2、子查询法 SELECT a1,a2,a3... FROM table WHERE id>= ( SELECT id FROM table LIMIT 20000,1 ) LIMIT 10;
 
原文地址:https://www.cnblogs.com/xianhaiyan/p/15066972.html