在特定查询上使用 sql LIMIT 1

using sql LIMIT 1 on specific queries


我想知道在查询中包含 LIMIT 1 是否更节省内存
当我们始终期望 1 个结果时。

例如我有以下查询

select * from clients where client_id = x

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

select * from clients where client_id = x limit 1

内存效率会更高一些,因为查询
一旦找到
,就不必遍历 table 上的每一行 那一行。

我说的对吗?在这种情况下是否包含限制并不重要?

如果您没有索引,可能会有很大的不同。

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

select *
from clients
where client_id = x

引擎将需要扫描整个 table 以确定只有一行。使用 limit 1 它可以在第一场比赛停止。

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

如果client_id是primary index方式,就不用LIMIT 1了,因为不会更有效。