1、MySQL分页查询原理:使用mysql提供的limit语法进行分页。
select * from user t WHERE t.user_id limit (当前页-1)*每页数目,每页数目
limit m,n : 从第m+1条开始取,取n条数据
例如:
select * from user t WHERE t.user_id limit (1-1)*10,10
第一页,取user表第一到第十条。
select * from user t WHERE t.user_id limit (2-1)*10,10
第一页,取user表第十到第二十条。
.......
2、数据量小的时候,用上述方法查询效率还行,当数据量大时效率就非常低了。以下是对它的优化。(数量限定转移到user_id上)
优化前
select * from user where user_id limit 10000,10
优化后:
SELECT
*
FROM
USER
WHERE
user_id > = (
SELECT
user_id
FROM
USER
ORDER BY
user_id
LIMIT 10000,1
)
LIMIT 10
速度快3倍!