参数

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语句也是同样道理。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐