任何人都可以告诉以下sql,
之间的区别SELECT * FROM TABLE
VS
SELECT * FROM TABLE FOR UPDATE
何时以及在什么情况下我需要使用更新
如果我使用更新并停止,则需要更多时间来获取数据。在更新上发生了什么以增加时间。请告诉我整个过程正在发生。
答案 0 :(得分: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.
答案 1 :(得分:0)
SELECT ... FOR UPDATE
获取对象(行,页面,取决于引擎)的写锁定。这涉及一些开销。此外,数据库(大多数情况下为InnoDB引擎)需要为多版本并发控制(MVCC)执行额外的簿记。
有关详细信息和示例,请参阅MySQL documentation on SELECT ... FOR UPDATE。