MySql之limit使用

近期就看到一篇博文,介绍limit性能的,感觉非常有用。

limit 语法






SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

  LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT
接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是
0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

  

?





1

2

3

4

5

6

7

8

  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是不是语句越少,耗费时间越少?


这里源自一个博客中查询的异常问题:相同的语句,只是最后的limit行数不同。奇怪的是,limit 10 的性能比limit
100的语句还慢约10倍。

具体的分析,可以参考:MySqL一个异常查询问题的追查


MySql之limit使用,布布扣,bubuko.com

时间: 2024-10-13 19:48:42

MySql之limit使用的相关文章

ibatis配置mysql的limit

<select id="xxx" > select * from xxx <dynamic prepend = "limit " > <isNotEqual property="num" compareValue="0" > 0,#num# </isNotEqual> </dynamic> </select> 或者 <select id="

MySql查询优化limit 1避免全表扫描(转)

在某些情况下,如果明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率. 例如下面的用户表(主键id,邮箱,密码): create table t_user(id int primary key auto_increment,email varchar(255),password varchar(255)); 每个用户的email是唯一的,如果用户使用email作为用户名登陆的话,就需要查询出email对应的一条记录. SELECT * FROM t_user WHERE ema

MYSQL中LIMIT用法

MYSQL中LIMIT用法 SELECT * FROM tableName LIMIT [offset,] rows; 1.select * from table limit m,n(显示条数) 其中m是指记录开始的索引index(索引是从0开始的表示第一条记录 ) n是指从第m+1条开始,取n条. 结果是检索记录第m+1行至(m+n)行记录,共取出n条记录 ex: SELECT * FROM 表名 limit 6,5; 结果:检索记录第7行至11行记录,共取出5条记录. 2.n可以被设置为-1

MySQL的limit用法及优化(转)

常规用法: 用法一: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2 OFFSET 1; 比如这个SQL ,limit后面跟的是2条数据,offset后面是从第1条开始读取. 用法二: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2,1; 而这个SQL,limit后面是从第2条开始读

mysql的limit性能,索引问题

mysql的limit性能,索引问题 继续学习.

Mysql的“Limit”操作

Limit操作: select * from table LIMIT 5,10; #返回第6-15行数据 select * from table LIMIT 5; #返回前5行 select * from table LIMIT 0,5; #返回前5行 性能优化: 基于MySQL5.0中limit的高性能,我对数据分页也重新有了新的认识.测试SQL语句1: Select * From cyclopedia Where ID>=( Select Max(ID) From (Select ID Fr

MySQL的Limit详解

问题:数据库查询语句,如何只返回一部分数据? Top子句 TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. 在SQL Server数据库中语法为: SELECT TOP number|percent column_name(s) FROM table_name 但是并非所有的数据库系统都支持 TOP 子句,比如Oracle和MySQL,它们有等价的语法. 在Oracle数据库中语法为: SELECT column_name(s) FROM tab

mysql中limit与in不能同时使用的解决方式.

mysql中limit与in不能同时使用的解决方式. 分类: MySQL2011-10-31 13:53 1277人阅读 评论(0) 收藏 举报 mysqlsubquery MySQL5.1中子查询是不能使用LIMIT的,报错: "This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' " 这样的语句是不能正确执行的.select * from message where id i

sqlserver row_number 类似 mysql中 limit 用法

select * from ( select row_number() over(ORDER BY inspecdate desc,inspectime DESC,itemorder asc ) as num, contentid,quesioncontext,tempid,tempname,itemid,itemtext,belongteam,teamname,inspecdate, inspectime,contenttext,createperson,newaddtime,updateti