在特定查询上使用sql LIMIT 1

时间:2015-06-12 12:34:13

标签: php mysql sql limit


我想知道在查询中包含LIMIT 1是否更具内存效率 当我们始终期待1个结果时。

例如,我有以下查询

select * from clients where client_id = x

我没有广泛的数据库管理技能,但我假设

select * from clients where client_id = x limit 1

会因为查询而有点内存效率 一旦找到,就不必遍历桌子上的每一行 那一行。

我是对的,或者如果我在这个特定情况下包含限制并不重要?

2 个答案:

答案 0 :(得分:1)

如果您没有索引,可以产生重大影响。

考虑以下情况,没有索引:

select *
from clients
where client_id = x

引擎需要扫描整个表以确定只有一行。 limit 1可以在第一场比赛时停止。

但是,如果您有索引,那么索引将具有相等比较的信息。因此,限制不会对性能产生影响。可能会有一些细微差别,但应该可以忽略不计。

答案 1 :(得分:0)

如果client_id是主要索引,则不需要使用LIMIT 1.因为它不会更有效。