【问题标题】:Does LIMIT clause makes updating faster? (Any database engine)LIMIT 子句是否使更新更快? (任何数据库引擎)
【发布时间】:2015-01-25 06:28:11
【问题描述】:

例如:

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

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

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

(像 Oracle 这样的一些数据库没有LIMIT。我想它们都有对应的子句。)

【问题讨论】:

    标签: sql database sqlite sql-update


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-21
      • 2020-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      相关资源
      最近更新 更多