FLUSH TABLES WITH READ LOCK

简介:

1.FLUSH TABLES WITH READ LOCK

 这个命令是全局读锁定,执行了命令之后所有库所有表都被锁定只读。一般都是在数据库联机备份,这个时候数据库的写操作将被阻塞,读操作顺利进行。

 解锁的语句也是unlock tables

2.LOCK TABLES tabl_name[AS alias] {READ [LOCAL]|[LOW_PRIORITY]|WRITE}

 这个命令是表级别的锁定,可以定制锁定某一个表。例如:lock tables test read;不影响其他表的写操作

 解锁的语句也是unlock tables。

这两个语句在执行的时候需要注意个特点,就是 隐式提交的语句。在退出mysql终端的时候都会隐式的执行unlock tables。 也就是如果要让表锁定生效必须一直保持对话。

read-lock:不允许其他发的读和写请求,但阻塞写请求,既可以同时读,但不允许任何写。也叫共享锁

write-lock:不允许其他并发的读和写请求,是排他的(exclusive)。也叫独占锁











本文转自 xinsir999 51CTO博客,原文链接:http://blog.51cto.com/xinsir/1665326,如需转载请自行联系原作者
目录
相关文章
|
关系型数据库 MySQL 数据库
lock_read
lock_read
48 2
|
SQL 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL
FLUSH TABLES WITH READ LOCK
前言 昨天碰到一个flush tables with read lock阻塞其他所有操作的案例,在博客园中6年前我已经写过一篇文章,再次拿出来分享下。 现象 id 账号 来源ip 库名 执行时间(秒) 状态 线程占用的内存(字节) SQL占用的内存(字.
7419 0
|
NoSQL 关系型数据库 MySQL
如何查找到底是谁执行了FTWL导致Waiting for global read lock
在MySQL · 特性分析 · 到底是谁执行了FTWL中 文章中,分析了为何出现大量Waiting for global read lock的连接。但是实际操作起来很多gdb版本不支持pset操作,而且连接过多,导致不可能手动打印每一个THD的state,所以笔者写了一个gdb的脚本供大家使用: 首先,先保存下面脚本到/tmp/getlockconn MySQL8.
2694 0
0322理解db file parallel read等待事件2
[20180322]理解db file parallel read等待事件2.txt --//上个星期的学习:http://blog.itpub.net/267265/viewspace-2151973/ https://docs.
1149 0
|
关系型数据库 Oracle Linux
0316理解db file parallel read等待事件
[20180316]理解db file parallel read等待事件.txt --//一直对db file parallel read等待事件不理解,因为在实际系统中很少遇到这样的等待事件.
1208 0