mysql优化之LIMIT,OFFSET分页

发布时间:2020-04-27编辑:脚本学堂
本文介绍下,在mysql中使用limit、offset进行分页时,如何优化的一些方法。供大家学习参考。

php编程中,大多使用limit+offset结合的方式进行分页,随着offset的值不断的增大,效率会越来越低。

1,常见的写法
 

复制代码 代码示例:
SELECT * FROM table ORDER BY id LIMIT 1000,10;

2,数据达到百万后,这样就会很慢。
以下语句也许会到达十几秒:
 

复制代码 代码示例:
SELECT * FROM table ORDER BY id LIMIT 1000000,10;

3,优化方法:
 

复制代码 代码示例:
SELECT * FROM table WHERE id>=(SELECT id FROM table LIMIT 1000000,1) LIMIT 10;

这样速度提升到0.X秒,看样子还行。

4,这种优化方法会更好:
 

复制代码 代码示例:
SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;

能比上面再快几倍的速度。

5,如果需要查询的id不是连续的一段,最好是先找出id,使用in的方式。
 

复制代码 代码示例:
SELECT * FROM table WHERE id IN(100000,100005,100008);

6,如果查询的是一个长字符串的时候,表设计的时候要为该字段多加一个字段。
比如:存数图片绝对地址的字段,查询时,不要直接查询字符串,效率很低,最好是查该字符串的crc32或md5。

就介绍这些吧,在写sql分页时,大家可以参考下以上的介绍,希望有助于你写出高效的代码哦。

您可能感兴趣的文章:
mysql limit用法及优化详解
学习MySQL数据分页查询(limit用法)
mysql查询优化之limit和count的优化
优化mysql的limit offset的例子
学习mysql中的limit分页优化
mysql分页limit速度太慢
mysql的limit offset,n的奥秘

相关阅读:
MySQL海量数据的通用存储过程分页代码
实例详解mysql limit大数据量分页优化的方法
学习MySQL数据分页查询(limit用法)
学习mysql中的limit分页优化
mysql分页limit速度太慢