解决Mysql数据量大的时候 分页优化(使用limit)的问题
2013-10-21 09:51
951 查看
来源: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
优化后:
执行时间为 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
---------------------------------------------------------------------
当一个表数据有几百万的数据时,分页的时候成了问题
如 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
相关文章推荐
- mysql 设置外键命令
- MySQL导入.sql文件及常用命令
- mysql Unknown storage engine 'InnoDB'解决
- [LAMPJ] 之 MySQL
- mysql中学生表查找选课大于3门,且平均分数最好的两个学生
- MySQL命令详解
- 14款经典的MySQL客户端软件
- Mysql数据备份与mysqldump增量备份
- [转]Mysql索引问题
- MYSQL的常用命令和增删改查语句和数据类型
- 几种常见MySQL无法启动案例
- 每个MySQL开发者都应该了解的10个技巧
- 101个MySQL 的调节和优化的提示
- MYSQL-BINLOG
- MySQL性能优化的最佳20+条经验
- 利用mysql的binlog恢复数据
- MySQL概述
- mysql存储过程 动态SQL
- 金宫丁:对MySQL DBA的一些思考
- 安卓mysql的JDBC驱动