- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章深入分析Mysql中limit的用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
Mysql中limit的用法:在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能.
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。 mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15 //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1: mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目: mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行 //换句话说,LIMIT n 等价于 LIMIT 0,n。 注意limit 10和limit 9,1的不同: 例如: 1. 。
。
2. 。
。
。
同样是取90000条后100条记录,第1句快还是第2句快? 第1句是先取了前90001条记录,取其中最大一个ID值作为起始标识,然后利用它可以快速定位下100条记录 第2句择是仅仅取90000条记录后1条,然后取ID值作起始标识定位下100条记录 第1句执行结果.100 rows in set (0.23) sec 第2句执行结果.100 rows in set (0.19) sec 其实第2句完全可以简化成:
。
。
直接利用第90000条记录的ID,不用经过Max运算,这样做理论上效率因该高一些,但在实际使用中几乎看不到效果,因为本身定位ID返回的就是1条记录,Max几乎不用运作就能得到结果,但这样写更清淅明朗,省去了画蛇那一足. 。
。
。
但不管是实现方式是存贮过程还是直接代码中,瓶颈始终在于MS-SQL的TOP总是要返回前N个记录,这种情 况在数据量不大时感受不深,但如果成百上千万,效率肯定会低下的.相比之下MySQL的limit就有优势的多 ,执行
。
。
的结果分别是
90000 rows in set (0.36) sec 1 row in set (0.06) sec 。
而MS-SQL只能用Select Top 90000 ID From cyclopedia 执行时间是390ms,执行同样的操作时间也不及MySQL的360ms. limit的offset(偏移量)用于记录较多的时候,记录较少时,偏移offset较小,直接使用limit较优。offset越大,后者越优.
1、offset比较小的时候.
。
。
多次运行,时间保持在0.0004-0.0005之间 。
。
。
多次运行,时间保持在0.0005-0.0006之间,主要是0.0006 结论:偏移offset较小的时候,直接使用limit较优。这个显示是子查询的原因.
2、offset大的时候.
select * from yanxue8_visit limit 10000,10 多次运行,时间保持在0.0187左右 。
。
。
多次运行,时间保持在0.0061左右,只有前者的1/3。可以预先offset越大,后者越优。 mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last. //如果只给定一个参数,它表示返回最大的记录行数目 。
以上所述就是本文的全部内容了,希望大家能够喜欢.
请您花一点时间将文章分享给您的朋友或者留下评论。我们将会由衷感谢您的支持! 。
最后此篇关于深入分析Mysql中limit的用法的文章就讲到这里了,如果你想了解更多关于深入分析Mysql中limit的用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在开始本文前先考虑以下一个问题 在不使用任何带有自动补全功能IDE的情况下,如何获取一个数组的长度?以及,如何获取一个字符串的长度? 这个问题我问过不同水平的程序员,包括初级和中级水平的。他们都
spool--导出sql语句结果集 SQL>spool c:\testsql.sql SQL>SELECT * FROM table_name; SQL>spool off;
在面向对象的C++语言中,虚函数(virtual function)是一个非常重要的概念。因为它充分体现 了面向对象思想中的继承和多态性这两大特性,在C++语言里应用极广。比如在微软的MFC类库中,
在查询语句中使用 NOLOCK 和 READPAST 处理一个数据库死锁的异常时候,其中一个建议就是使用 NOLOCK 或者 READPAST 。有关 NOLOCK 和 READPAST
我正在尝试使用 espn 公共(public) API 并尝试使用他们的 json 来访问 NFL 球员信息。 我成功访问的 json 如下所示: { "sports": [ {
前面跟小伙伴们分享了 SpringMVC 一个大致的初始化流程以及请求的大致处理流程,在请求处理过程中,涉及到九大组件,分别是: HandlerMapping Hand
Automatic Workload Repository 是 10g 引入的一个重要组件 存贮着近期一段时间内数据库活动状态的详细信息、信息保留默
我一直坚持使用 ng-repeat 显示数据。我唯一能做的就是显示两个对象之一。每个客户可以有多个用户。我正在尝试在具有 CustomerId 的表中显示用户。 Working plunkr app.
对我来说,下面的 Java 代码是完全有效的,风格很好: enum Side { LEFT, RIGHT }; ... Side side = ...; switch (side) { case LE
我是一名优秀的程序员,十分优秀!