MySQL大数据下Limit使用
来源:互联网 发布:仿真数据轻量化可视化 编辑:程序博客网 时间:2024/06/06 07:47
对于一直用Oracle的我,今天可是非常诧异,MySQL中同一个函数在不同数量级上的性能居然差距如此之大。
先看表ibmng(id,title,info) 唯一 id key 索引title
先看看两条语句:
select * from ibmng limit 1000000,10
select * from ibmng limit 10,10
很多人都会认为不会有多大差别,但是他们都错了,差别太大了,(可能机器不同有点差距,但绝对10倍以上)具体执行时间留给好奇的同学。
这是为什么呢,都是offset的错!
优化的话你可以想方法减小offset,如以下:
Select * From ibmng Where id >=(
Select id From ibmng Order By id limit 1000000,1
) limit 10
大家一定会看到问题, limit 1000000,1 同样offset不是一样大吗,肯定不能优化。(但是,又错了,执行之后才知道结果!)
原因是id是索引,所有快,那么如下sql呢:
select id from ibmng where title='mysql' order by id limit 1000000,10;
这条sql大家又会猜错,同样慢的跟蜗牛一样。(在此大家都会想title加了索引啊怎么会这样!)
接下来大家再执行一条sql如下:
select id from ibmng where title='mysql' limit 1000000,10;
执行之后你会发现速度是sousou的快!
原因看出来了吧,都是用了索引的原因,如果你要用select id from ibmng where title='mysql' order by id limit 1000000,10; 那么就追加复合索引(title,id )吧!
注意:接下来与limit无关!
最后回到我现在的场景,如果千万级别的数据分批次读取统计的话,不要使用limit最好,用主键范围判断最佳!(eg:id<=1001000 and id>=1000001)
- MySQL大数据下Limit使用
- MySQL大数据下Limit使用
- MySQL大数据LIMIT优化
- MySQL大数据LIMIT优化
- mysql下limit注入
- MySql Limit使用
- mysql limit 使用优化
- Mysql使用limit优化
- mysql limit 的使用
- mysql limit 使用规范
- MySQL数据分页查询---limit、order by的使用
- 大数据下mysql配置
- MySql中的limit的使用
- mySql查询语句Limit使用
- mysql limit使用注意项
- mysql中使用limit 分页
- Mysql查询使用Limit优化
- MySQL的limit的使用
- Linux安装配置php--搭建网站(4)
- 控制执行流程,初始化与清理-java编程思想-第4、5章
- 南阳 103 改进后还是进制出问题
- Makefile讲义(9)——隐含规则
- Win7下SQL Server 2008安装图解
- MySQL大数据下Limit使用
- HBase(hbase-0.96.2) 安装
- Makefile讲义(10)——更新函数库文件
- Linux下最常用的Shell命令的介绍(图文)
- ubuntu history 命令详解
- Ecmall 遇到错误Fatal error: Call to a member function get() on a non-object
- [杂谈]程序员实现自我的10大方法
- hdu 1431 素数回文
- Android 中自定义控件和属性(attr.xml,declare-styleable,TypedArray)的方法和使用