温馨提示×

mysql forupdate锁表和锁行有何不同

小樊
96
2024-07-10 14:32:35
栏目: 云计算
亿速云mysql数据库,读写分离,安全稳定,弹性扩容,低至0.3元/天!! 点击查看>>

在MySQL中,使用FOR UPDATE可以对查询结果进行行级锁定,以防止其他会话修改或删除这些行。FOR UPDATE可以在SELECT语句中使用,例如:

SELECT * FROM table_name FOR UPDATE;

这样会对所有查询结果行进行行级锁定,保证其他会话无法修改或删除这些行。

另一方面,可以使用LOCK TABLES语句对整个表进行锁定,以防止其他会话对整个表进行修改。例如:

LOCK TABLES table_name WRITE;

这会对整个表进行锁定,其他会话无法对该表进行写操作,但可以进行读操作。

因此,FOR UPDATE是对查询结果行进行行级锁定,而LOCK TABLES是对整个表进行锁定,两者的锁定粒度不同。

亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>

推荐阅读:mysql行锁和表锁怎么使用

0