簡體   English   中英

在 MyISAM 中使用或不使用附加條件可以更快地更新哪個?

[英]Which can be updated faster, using or not using additional condition in MyISAM?

我正在嘗試使用 MySQL(引擎:MyISAM)中的單個查詢來更新多條記錄。

看起來像:

UPDATE table_name SET delete_flag=true WHERE column_1={value}

我想將所有delete_flag設置為true 然后,我想出了像這樣添加 WHERE 子句:

UPDATE table_name SET delete_flag=true WHERE column_1={value} AND delete_flag=false

(delete_flag 沒有任何索引。)

雖然它可能取決於記錄的數量,但我想知道哪種方法更快。

你能給我你的建議嗎? 如果取決於情況,請告訴我。

謝謝。

據推測, id在表中是唯一的,因此 MySQL 將根據該條件查找需要更新的一行。

MySQL 然后在進行更新之前檢查值是否更改。 因此,當記錄沒有改變時,MySQL 引擎不會做額外的工作(例如記錄)。

性能上的任何差異都可以忽略不計,而且很難量化。

如果您添加INDEX(delete_flag, id) ,那么您的第二個選項將運行得更快,因為它會查看更少的行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM