3

谁能告诉下面的sql之间的区别,

SELECT * FROM TABLE

VS

SELECT * FROM TABLE FOR UPDATE

何时何地我需要使用 For Update

如果我使用更新并停止,则需要更多时间来获取数据。更新发生了什么以增加时间。请告诉我这件事发生的整个过程。

4

2 回答 2

8

我认为 MariaDB / MySQL 手册中的这句话是不言自明的:

If you use FOR UPDATE with a storage engine that uses page or row locks, rows examined by the query are write-locked until the end of the current transaction.

于 2013-06-05T12:49:46.473 回答
0

SELECT ... FOR UPDATE获取对象(行、页,取决于引擎)的写锁。这涉及一些开销。此外,数据库(大多数情况下是 InnoDB 引擎)需要为多版本并发控制(MVCC)做额外的记账。

有关详细信息和示例,请参阅有关 SELECT ... FOR UPDATE 的 MySQL 文档。

于 2013-06-05T13:02:16.767 回答