在特定查询上使用 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了,因为不会更有效。
我想知道在查询中包含 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了,因为不会更有效。