繁体   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