解决Mysql数据量大的时候 分页优化(使用limit)的问题


来源:http://www.wenlingnet.com/index.php/198/

---------------------------------------------------------------------

当一个表数据有几百万的数据时,分页的时候成了问题
如 select * from table limit 0,10 这个没有问题 当 limit 200000,10 的时候数据读取就很慢,可以按照一下方法解决

总数据有500万左右
以下例子 当时候 select * from wl_tagindex where byname=’f’ order by id limit 300000,10 执行时间是 3.21s

优化后:

select * from (
            select id from wl_tagindex
            where byname='f' order by id limit 300000,10
) a
left join wl_tagindex b on a.id=b.id

执行时间为 0.11s 速度明显提升

这里需要说明的是 我这里用到的字段是 byname ,id 需要把这两个字段做复合索引,否则的话效果提升不明显

具体参考:

http://explainextended.com/2009/10/23/mysql-order-by-limit-performance-late-row-lookups/

http://www.linuxso.com/sql/19286.html


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM