MySQL在大数据Limit使用[通俗易懂]

MySQL在大数据Limit使用

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

它已被用于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)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116702.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • matlab中如何求插值点,MATLAB插值「建议收藏」

    matlab中如何求插值点,MATLAB插值「建议收藏」4.5插值插值就是在已知数据之间计算估计值的过程,是一种实用的数值方法,是函数逼近的重要方法。在信号处理和图形分析中,插值运算的应用较为广泛,MATLAB提供了多种插值函数,可以满足不同的需求。4.5.1一维数据插值一维数据插值常使用函数interp1,其一般的语法格式为:yi=interp1(x,y,xi,method)。其中y为函数值矢量,x为自变量的取值范围,x与y的长度必须相同;x…

    2022年6月4日
  • dotnet开源手册_c++基本框架

    dotnet开源手册_c++基本框架DotNetNuke 5 C#版本解读之1--架构介绍

    2022年4月21日
  • SIM简介「建议收藏」

    SIM简介「建议收藏」5月17日,国际电信日。在这天,北京通信公司开始对北京城里的政府单位医疗机构等集体发放小灵通号码,随着小灵通在北京市区的出现,以及中国南北两大电信公司的互联互通,网通电信移动联通4足鼎立的局面已经形成,传统的高价资费模式已经被打破,单向收费和准单向收费成为人们最津津乐道的话题。现在全国各地移动联通公司纷纷推出价格便宜、针对不同阶层的手机卡。我为大家介绍一下中国的手机品牌卡以所支持的功能,希望能为即…

    2022年10月7日
  • rtp协议详解

    rtp协议详解RTP的头部格式版本号(V):2比特,用来标志使用的RTP版本。填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含附加的填充字节。扩展位(X):1比特,如果该位置位的话,RTP固定头部后面就跟有一个扩展头部。CSRC计数器(CC):4比特,含有固定头部后面跟着的CSRC的数目。标记位(M):1比特,该位的解释由配置文档(Profile)来承担….

    2022年6月28日
  • javascript 数组排序(三种方法)

    javascript 数组排序(三种方法)一、用sort()方法进行数组排序vararr1=[20,80,54,78,8,67,27]; functionmy(a,b){ returna-b; } console.log(arr1.sort(my));//8,20,27,54,67,78,80二、冒泡排序vararr1=[20,80,54,78,8,67,27]; functionmys(arr1){ for(vari=0;i<arr1.length-1;

    2022年6月11日
  • 服务治理

    服务治理服务治理

    2022年4月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号