Mysql

刪除帶或不帶 LIMIT 的行

  • January 1, 2017

刪除時,我應該使用 LIMIT 還是不使用(MySQL INNODB 表)

  • 每個客戶都有一個唯一的雜湊值。
  • 每個客戶可以在一個表中擁有一條或多條記錄。

如果我事先知道一個客戶最多可以有 100 條記錄,並且我的 DELETE 查詢有 LIMIT 100,那麼我假設一旦刪除了 100 條記錄,查詢將結束而不會進入表末尾。

但是,如果我的客戶只有 50 條記錄,而我的 DELETE 查詢有 LIMIT 100,則刪除將繼續進行,直到找到表末尾,因為它將花費精力去尋找不存在的第 51 條記錄。

因此…如果我不使用 LIMIT,MySQL INNODB 是否會提前知道在刪除 50​​ 條記錄後它不需要繼續進一步?

答案可以產生或消除性能問題……

限制只會幫助正好 100,所以它可能不值得成本。

如果您在雜湊上放置一個索引,那麼它應該知道停止(以及從哪裡開始)。

引用自:https://dba.stackexchange.com/questions/159704