LIMIT

简介: <div style="font-family:微软雅黑; font-size:14px; line-height:21px"> <div style="background-color:inherit">① Select * from table<span style="background-color:inherit"> LIMIT m</span>; # 从0开始,m条记录</di
① Select * from table  LIMIT m; # 从0开始,m条记录
② Select * from table  LIMIT m,n; # 从m+1条记录开始,n条记录【 询语句偏移量offset很大的时候,效率较低
③ Select * from table  LIMIT rows OFFECT offset;

    第一个自变量指定:返回的第一行的偏移量offset,第二个自变量指定:返回的行数的最大值。初始行的偏移量为0(不是1)。

Select*from sakila.rental LIMIT 14036,10;#① 6ms

Select*from sakila.rental LIMIT 10 OFFSET 14036;#②  6ms ,PostgreSQL ,【结果与 ① 等价】

 

Select*from sakila.rental WHERE rental_id>=14036 LIMIT 10;  #③ 1ms

Select*from sakila.rental WHERE rental_id>=(SELECT rental_id from sakila.rental limit 14306,1LIMIT 10;  #④ 3ms

 offset偏移量较大时,可先获取到offset的id后,再直接使用limit size来获取数据。(实际SQL中偏移量对应字段应该where字段不一致才有效果,和SQL①对比)


Select*from sakila.rental LIMIT 0; #⑤ 迅速返回一空集。这可以于检查一查询的有效性

 

SELECT*FROM rental WHERE rental_date ='2005-08-01 09:45:58'LIMIT 1;  #⑥ limit耗时0.018slimit耗时0.002s


Select*from  sakila.rental INNER JOIN(SELECT rental_id from sakila.rental limit14306,10) aa USING(rental_id);  # 3ms,给子查询的表加一个别aa;效果和④等价


Note: 

  • where...limit....性能基本稳定,受偏移量offset和行数rows的影响不大;
  • 而单纯采用limit的话,受偏移量的影响很大,当偏移量大到一定后性能开始大幅下降。


目录
打赏
0
0
0
0
21
分享
相关文章
Starrocks执行查询报错:Memory of process exceed limit. Used: XXX, Limit: XXX. Mem usage has exceed the limit of BE
Starrocks执行查询报错:Memory of process exceed limit. Used: XXX, Limit: XXX. Mem usage has exceed the limit of BE
postgre分页查询报错:ERROR: LIMIT #,# syntax is not supported 建议:Use separate LIMIT and OFFSET clauses
postgre分页查询报错:ERROR: LIMIT #,# syntax is not supported 建议:Use separate LIMIT and OFFSET clauses
439 0
postgre分页查询报错:ERROR: LIMIT #,# syntax is not supported 建议:Use separate LIMIT and OFFSET clauses
Block Throttle - Low Limit
传统的 block throttle 的语义是,cgroup 不能超过用户配置的 IOPS/BPS,此时所有 cgroup 会自由竞争 IO 资源;那么其存在的问题就是,如果用户配置的 IOPS/BPS 过高,所有 cgroup 之间就会完全自由竞争 IO 资源,从而无法保证 QoS,而如果用户配置的 IOPS/BPS 过低,又无法充分发挥 block 设备的性能 Facebook 的 Shao
612 0
分页查询(limit)
limit(可以接受一个参数或者两个参数) 第一个参数 指定第一个返回记录行的偏移量(初始偏移量是0不是1) 第二个参数 指定返回记录行的最大数目 例: //检索记录行6-15 select * from table limit 5...
1764 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等