where
和 limit
都具有 避免全表扫描 的功能 (mysql
),区别在于:where
能够充分利用 索引
,而limit
能够限制查询行数
limit
的存在主要是为了防止 全表扫描
,如果一个语句本身可以得出不用全表扫描,有没有limit
那么性能的差别是不大的,比如唯一索引
,主键
[没试验过,NND]
对于偏移量offset
较大的查询
,建议用好where
语句,来避免全表扫描
;因为limit
本身没有利用索引
的缩小范围能力
对于任何一个查询,首先应该想到的是如何利用 where 语句来 缩小范围,然后利用limit
来限制返回行数