我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL大数据下Limit使用

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL大数据下Limit使用

  对于一直用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)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MySQL大数据下Limit使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL大数据下Limit使用

对于一直用Oracle的我,今天可是非常诧异,MySQL中同一个函数在不同数量级上的性能居然差距如此之大。先看表ibmng(id,title,info) 唯一 id key 索引title先看看两条语句:select * from ib
2022-05-22

MySQL数据库:排序及limit的使用

排序排序方式:升序——asc(默认:从小到大)降序——desc(由大到小)# 排序语法:order by 字段1 [asc]|desc[,字段2 [adc]|desc,……]limit# limit 和排序结合起来用,取前面的多少条数据# 在limit后面只有
2018-05-01

MySql大数据量查询limit与order by配合缓慢

大数据量在MySQL中查询分页排序,数据量就会很大我们可以把limit与order by拆分为两个步骤 先根据条件 把limit、ordey by相关的数据的索引查出来,然后再根据索引查询具体的字段信息(也就是两层嵌套)例:select id, u

	MySql大数据量查询limit与order by配合缓慢
2019-09-28

MySQL中select limit怎么使用

在MySQL中,SELECT语句的LIMIT子句用于限制查询结果的数量。使用LIMIT子句的基本语法如下:SELECT 列名称FROM 表名称LIMIT 数量;其中,数量指定了要返回的行数。例如,要从名为"customers"的表中选择前5
2023-10-19

mysql 使用技巧 分页limit

mysql 分页使用 limit关键字,limit x,y (x代表从哪条数据开始,y代表页面大小。mysql第一条数据在limit计算时索引为0)limit 10  前10条limit 0,10  从第1条开始的10条limit 10,10  从第 11 条
mysql 使用技巧 分页limit
2018-05-16

mysql中offset和limit怎么使用

在MySQL中,OFFSET和LIMIT用于分页查询数据,其中LIMIT用于指定返回记录的数量,OFFSET用于指定从第几条记录开始返回。例如,要查询从第6条记录开始的10条记录,可以使用以下SQL语句:SELECT * FROM ta
mysql中offset和limit怎么使用
2024-04-12

MySQL 中 LIMIT 使用示例详解

mysql是一种常用的关系型数据库管理系统,它提供了许多用于查询和操作数据的功能。其中,LIMIT是一个非常有用的关键字,用于在查询结果中限制返回的行数。操作数据库时,经常会遇到需要查询前几条或者后几条数据的javascript情况,尤
MySQL 中 LIMIT 使用示例详解
2024-08-12

使用Limit参数优化MySQL查询的方法

要优化MySQL查询,可以使用LIMIT参数来限制返回的结果集的大小,以减少查询的时间和资源消耗。以下是一些使用LIMIT参数优化MySQL查询的方法:1. 限制返回的结果行数:使用LIMIT语句来限制返回的结果行数,可以减少查询的时间和资
2023-08-11

怎么使用MySQL中的select、distinct、limit

这篇文章主要讲解了“怎么使用MySQL中的select、distinct、limit”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用MySQL中的select、distinct、lim
2023-06-25

MySql分页时使用limit+order by会出现数据重复问题解决

目录摘要问题描述分析问题解决问题摘要能把复杂的知识讲的简单很重要在学习的过程中我们看过很多资料、视频、文档等,因为现在资料视频都较多所以往往一个知识点会有多种多样的视频形式讲解。除了推广营销以外,确实有很多人的视频讲解非常优秀,例如李永乐老
2022-05-15

编程热搜

目录