MySQL锁 小结

MySQL锁 小结

mysql 锁 实验环境mysql版本5.7.24
1、flush tables with read lock;
全局设置读锁,此时数据所有表只能读,不能写入,更新,删除,如果是当前线程会提示有读锁,其他线程则处于阻塞状态。一般用于全局表备份。

2、lock tables user read;
给user添加读锁,此时user只能读,不能写入,更新,删除,如果是当前线程会提示有读锁,其他线程则处于阻塞状态。

3、lock tables user write;
给user添加写锁,此时其他线程user只能写,不能读,改,删,当前线程却可以执行读改删。

4、只要表被锁,即使是修改表,添加字段,更改字段,也不能执行。

5、元数据锁(metadata lock MDL,5.5版本后新引入的锁)当一个表在使用时,执行DDL语句操作时,会自动触发MDL锁

6、mysql 解锁表
unlock tables;
或者当客户端连接断开后也会自动释放锁。

ps:全局备份数据库建议使用 mysqldump 结合 –single-transaction参数 更好。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据