谁能告诉下面的sql之间的区别,
SELECT * FROM TABLE
VS
SELECT * FROM TABLE FOR UPDATE
何时何地我需要使用 For Update
如果我使用更新并停止,则需要更多时间来获取数据。更新发生了什么以增加时间。请告诉我这件事发生的整个过程。
我认为 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.
SELECT ... FOR UPDATE
获取对象(行、页,取决于引擎)的写锁。这涉及一些开销。此外,数据库(大多数情况下是 InnoDB 引擎)需要为多版本并发控制(MVCC)做额外的记账。
有关详细信息和示例,请参阅有关 SELECT ... FOR UPDATE 的 MySQL 文档。