LIMIT 子句是否使更新更快? (任何数据库引擎)

Does LIMIT clause makes updating faster? (Any database engine)

例如:

UPDATE tab_name SET col_name=? WHERE col_name='a_unique_str' LIMIT 1;

col_name 没有索引,但我们知道 'a_unique_str' 确实是唯一的。 LIMIT 1 是否使这样的查询更快?

(做一个简单的基准测试并不难,但我想知道它在不同的数据库中是否以相同的方式工作,或者与数据库调优有什么可能的联系。)

(有些数据库如 Oracle 没有 LIMIT。我想它们都有它们的等效子句。)

如果您真的想了解某个特定的数据库,那么您应该在该数据库上测试代码。

但是,代码应该更快。 limit 1 表示在更新一行后停止,因此它将在第一次匹配后停止。如果没有 limit 1,数据库必须考虑所有可以匹配条件的行。如果没有索引,这需要查看所有行中的值。

如果匹配的行是最先遇到的行之一,速度的提高可能会非常大。或者,如果匹配行靠近 ned,则可以忽略不计。期望查询将进行完整的 table 扫描,而 limit 1 将节省完整 table 扫描的一半。