题解 | #查询结果限制返回行数#

查询结果限制返回行数

http://www.nowcoder.com/practice/c7ad0e2df4f647dfa5278e99894a7561

select device_id from user_profile limit 0,2---运行效率更高

select device_id from user_profile limit 2 ---运行效率低

也可结合 limit offset: 一起使用时,limit表示要取的数量,offset表示跳过的数量

select device_id from user_profile limit 2 offset 0 // 跳过0条,从第一条数据开始取,取两条数据 ---运行效率中

全部评论
0是初始记录行的偏移量,2是从0开始偏移的量,就相当于坐标,用坐标去查肯定更快
11 回复 分享
发布于 2022-02-24 15:45
可能是因为不加0,mysql会以2个2个这样区分开来,然后返回开始的2个。加了0,直接说明从第一个开始,找2个,完事不用理后面的。。
6 回复 分享
发布于 2022-02-24 10:19
在牛客在线SQL上,耗时没啥区别额?
2 回复 分享
发布于 2022-08-19 01:15 上海
效率是一样的,默认就是0
1 回复 分享
发布于 2023-01-31 09:49 美国
为什么加一个0会更快呢?是精确查找的意思吗?
点赞 回复 分享
发布于 2021-12-17 19:14
对呀,为什么加了一个0会更快,难道说从0开始查找,限制两个的意思吗
点赞 回复 分享
发布于 2022-01-19 11:29
测量几遍 不知道理论谁更快,不过测试情况下 2条数据还是limt 2 快一点 占用内存也少一点,具体是否和数据量有关系不知道
点赞 回复 分享
发布于 2023-05-22 15:51 江苏
扯***蛋
点赞 回复 分享
发布于 02-23 10:34 广东
在 MySQL 中,LIMIT 子句的性能主要依赖于几个因素,包括查询的复杂性、表的大小、是否有适当的索引、以及数据库的配置。对于简单的查询,如从一个小表中选择数据,这三种写法的性能差异可能微乎其微。然而,对于大表或更复杂的查询,性能差异可能会变得显著。 以下是这三种写法的性能考虑: 1. LIMIT 0,2:这种写法指定了起始偏移量和要返回的记录数。对于大表,如果没有适当的索引,数据库可能需要扫描表中的多行来找到正确的起始点,然后返回两条记录。这可能会比只指定返回的记录数更耗时。 2. LIMIT 2:这种写法只指定了要返回的记录数,没有指定偏移量。数据库可以直接返回前两条记录,而不需要先定位到特定的起始点。这通常比指定偏移量更快,特别是在没有索引或查询优化的情况下。 3. LIMIT 2 OFFSET 0:这种写法同时指定了偏移量和要返回的记录数。虽然偏移量为 0,不会改变查询的结果,但数据库仍然需要处理偏移量,这可能会比只指定返回的记录数稍微慢一些。
点赞 回复 分享
发布于 03-06 13:55 江苏

相关推荐

我已成为0offer的糕手:别惯着,胆子都是练出来的,这里认怂了,那以后被裁应届被拖工资还敢抗争?
点赞 评论 收藏
分享
10-25 02:13
门头沟学院 C++
牛客7351937293号:8.27笔试10.22评估
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
146 27 评论
分享
牛客网
牛客企业服务