前言
通常针对MySQL大数据量的查询采取“分页”策略,但是如果翻页到比较靠后的位置时查询将变得很慢,因为mysql将花费大量的时间来扫描需要丢弃的数据。
基本分页技巧
通常情况下,为了实现高效分页,需要在查询中WHERE条件列和排序列应用组合索引。
例如,建立索引(a,b,c)使得以下查询可以使用索引,提高查询效率:
1、字段排序
ORDER BY a
ORDER BY a,b
ORDER BY a, b, c
ORDER BY a DESC, b DESC, c DESC
2、筛选
一、分页查询
应用场景:当要显示的数据,一页显示不全,需要分页提交SQL请求
语法:
执行顺序从1-9
SELECT 查询列表 7
FROM 表名 1
JOIN 表2 2
ON 连接条件 3
WHERE 筛选条件 4
GROUP BY 分组条件 5
HAVING 分组后筛选 6
ORDER BY 排序字段 8
LIMIT offset, size 9
注意: offset 为起始索引,默认从0开始 siz
8:分页查询
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求
语法:
SELECT 查询列表
FROM 表名
【JOIN type JOIN 表2
ON 连接条件
WHERE 筛选条件
GROUP BY 分组字段
HAVING 分组后的筛选
ORDER BY 排序的字段】
LIMIT 要显示条目的起始索引(起始索引从0开始),长度(要显示的条目个数)
特点:
1.LIMIT 语句放在查询语句的最后
2.上述代码的执行顺序为:
1)FROM 表名
2)JOIN type JOIN