双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

关于mysql的limit语句优化后与优化前没有区别的疑问

qq_29467313 qq_29467313 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,小弟最近在看《高性能mysql一书》,其中看到该书上一个关于优化limit查询的sql语句写法,于是便跃跃欲试建了张测试表,然后往里面插入了一百多万条数据,下面是我测试的三条sql语句:
①最普通的写法
select * from test2 limit 1000000, 100;

②《高性能mysql》一书的写法:
select *
from (select no from test2 limit 1000000, 100) as A natural join test2

③网上一些教程的写法:
select *
from no >=
(select no from test2 order by no limit 1000000,1)
limit 100

然而最终结果却让我有点失望,后两条语句在navicat上手动执行并没有比第一条快,①和③的执行时间都是二点多秒,而②则夸张的去到了四点多秒,而且重复了很多次都是一样的结果。之后想想觉得可能是软件的耗时数据不准确,于是又打开Apache jmeter进行jdbc测试,开10个线程每个线程执行100次,可是最终结果依然很让人困惑,②语句没有像之前那么夸张落后那么多了,可是三条语句的平均耗时、耗时中位数以及每秒操作次数都没太大差别(甚至第①条还略微领先一丢丢),这完全不像书上以及网上教程说得那样“大大提高查询性能”啊,请问一下各位是我的测试方法有问题还是?
...全文

相关推荐

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

我们在做一些查询的时候总希望能避免数据库引擎做全表扫描,因为全表扫描时间长,而且其中大部分扫描对客户端而言是没有意义的。那么在 MySQL 中有那些方式是可以避免全表扫面的呢?除了我们大家很熟悉的通过使用索引列或分区等方式来进行查询的优化之外还有那些呢?

weixin_38522795

oracle与mysql的区别

这是一个在面试中经常被问到的问题,关于oracle与mysql的区别,学习吧

xiaomonv21

简述MySQL与Oracle的区别

1.  Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高。 2. Oracle支持大并发,大访问量,是OLTP最好的工具。 3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能。 4.Oracle也Mysql操作上的一些区别 ①主键 Mysql一般使用自动增长类型,在创建表时只要指定表的主键为auto increment,插入记录时,不需要再指定该记录的主键值,Mysql将自动增长;Oracl

weixin_38691482

基于mysql查询语句的使用详解

1> 查询数据表除了前三条以外的数据。    起初我想到的是这条语句    SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ORDER BY userid LIMIT 3) ORDER BY userid DESC    但是运行的时候会报 This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME subquery 这个的意思是表示子查询的时候不支持limit ,还有一点我就是很二了 就是查询的时候用not in 效率非常不高 最后

weixin_38697444

Mysql中基本语句优化的十个原则小结

主要给大家总结介绍了Mysql中基本语句优化的十个原则,通过学习与记住它们,在构造sql时可以养成良好的习惯,文中介绍的相对比较详细与简单明了,需要的朋友们可以参考借鉴,下面来一起看看吧。

weixin_38562329
评论 4
收藏 已收藏
分享
返回顶部
qq_29467313
数据库开发 8,027 成员 1,363 内容