MySQL之limit的简单使用和优化

基本使用

select * from table limit m,n  #   m从0开始,n代表取的条数
select * from tablename limit 2,4  # 即从第3条开始,取4条记录

取前5条记录,注意没有从 0 开始

select * from emp  limit 5;  

从某条记录开始,取剩余所有的记录

select * from emp  limit 5,-1;  #从第六行开始,取后面所有的记录

注意:limit的偏移量越大,分页的效率就越低

通过子查询分页来提高分页的效率

方式一:

SELECT * FROM emp WHERE empno > (
SELECT empno FROM emp limit 10000,1) LIMIT 10

方式二:

SELECT * FROM emp e 
INNER JOIN (select id from emp limit 10000, 10) m
ON e.empno = m.empno

因为子查询是基于索引完成查询的,而一般的查询是基于数据文件完成,数据量大的情况下,一般的查询IO开销较大

猜你喜欢

转载自blog.csdn.net/qq_42224683/article/details/109604662