Mysql
刪除帶或不帶 LIMIT 的行
刪除時,我應該使用 LIMIT 還是不使用(MySQL INNODB 表)
- 每個客戶都有一個唯一的雜湊值。
- 每個客戶可以在一個表中擁有一條或多條記錄。
如果我事先知道一個客戶最多可以有 100 條記錄,並且我的 DELETE 查詢有 LIMIT 100,那麼我假設一旦刪除了 100 條記錄,查詢將結束而不會進入表末尾。
但是,如果我的客戶只有 50 條記錄,而我的 DELETE 查詢有 LIMIT 100,則刪除將繼續進行,直到找到表末尾,因為它將花費精力去尋找不存在的第 51 條記錄。
因此…如果我不使用 LIMIT,MySQL INNODB 是否會提前知道在刪除 50 條記錄後它不需要繼續進一步?
答案可以產生或消除性能問題……
限制只會幫助正好 100,所以它可能不值得成本。
如果您在雜湊上放置一個索引,那麼它應該知道停止(以及從哪裡開始)。