MySQL LIMIT 理解

参数

Limit一般放在sql的最后,用于对数据集的行数进行约束,有两个参数,实例如下:

SELECT 
column1,column2,...
FROM
table
LIMIT offset , count;

offset:含义是偏移量,offset=3代表跳过前三条记录,从第四条开始算。

count:指返回的条数。

LIMIT 3,5 就是返回第4-8条数据。

当然第一个参数offset可以省略,LIMIT 5表示返回 5 条记录,省略了offset,offset的默认值是0,就是没有偏移量,返回第1-5条记录。

利用LIMIT的这个特性,可以用来做分页、快速查询等。

效率

先来看下如下sql:

SELECT 
column1,column2,...
FROM
table
LIMIT 300000 , 100;

这个sql的效率其实是很低的,因为数据库需要一直“偏移”到300000的位置,才开始取那需要的100条数据,所以一般不要这样写sql,这也可以解释很多app中只提供最近几个月的操作记录或订单。那怎么优化呢?可以先通过其他条件,把前30w不需要的数据通过where条件过滤掉,如where id>=300000等。

其他

LIMIT除了用在SELECT查询语句上,也是支持DELETE和UPDATE语句的,如:

UPDATE 
TABLE SET column1='test1' 
WHERE type=1234
LIMIT 1;

sql表示只更新type=1234的第一条记录,同样DELETE语句也是同样道理。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值