https://blog.csdn.net/zgdwxp/article/details/102231838
分页常适用于性能优化,如以下场景:
- 业务只需要获取部分数据,如top 10,此时查询所有数据到客户端,浪费数据库磁盘IO/网络IO、应用内存
- 数据量太大,传输时间可能过长甚至中断、查询到客户端内存开销巨大,每次只查询较小数量的行,分多次查询
MySQL中使用limit
实现分页查询。
SELECT * FROM table
LIMIT {[offset,] row_count | row_count OFFSET offset}
如上所示,limit
可接受1或2个参数,参数必须是非负整数。
LIMIT offset, row_count
释义:从指定偏移位置开始返回,一共返回多少行
注意:第一行的偏移量为0,而不是1
例:SELECT * FROM tbl LIMIT 5,10
,表示从第6行开始返回、一共返回10行。
这是MySQL
分页最常见的写法。
LIMIT row_count
等价于LIMIT 0, row_count
。
LIMIT row_count OFFSET offset
为了兼容PostgreSQL,参见《PostgreSQL Limit分页》
例:LIMIT 10 OFFSET 5
等价于 LIMIT 5,10
推荐采用该方法,语义更明确、兼容性更好。