T-Sqljs css htmlMySQL数据库

MySql存储引擎中的锁

2023-02-15  本文已影响0人  技术老男孩

一、概念:

二、表加锁的类型:

三、表加锁的范围(锁粒度):

四、相关命令:

SQL命令 说明
show open tables where in_user>0; 查看最近被锁的表
show status like "table_locks%" 查看锁表状态
show status like "Table_locks_immediate%" 立即获得表级锁的次数
show status like "Table_locks_waited%" 不能立即获取表级锁而需要等待的次数
lock tables 表名 read; 表加读锁
lock tables 表名 write; 表加写锁
unlock tables; 释放锁

五、使用示例:

# 第一个连接
]#mysql  -uroot  -p密码
# 开启读锁
Mysql> Lock tables  tarena.salary  read; 
# 查询数据正常
Mysql> select  * from  tarena.salary;

# 第二个连接
]#-uroot  -p密码
# 查询数据正常
Mysql>  select  * from  tarena.salary;
# 插入数据 客户端显示等待
Mysql>  insert into  tarena.salary(employee_id,basic) values(1,20000); 

# 回到第一个连接
# 释放读锁
MySQL> Unlock tables;

# 回到第二个连接
# Insert命令执行成功
# 第一个连接
]#mysql  -uroot  -p密码
# 开启写锁
Mysql> Lock tables  tarena.salary  write; 

# 第二个连接
]#-uroot  -p密码
# 查询数据 客户端显示等待
Mysql>  select  * from  tarena.salary; 
# 插入数据 客户端也显示等待
Mysql>  insert into  tarena.salary(
  employee_id,basic
) values(1,20000); 

# 回到第一个连接
# 释放锁
MySQL> Unlock tables;

# 回到第二个连接,
# 查和写的命令都可以执行了
上一篇下一篇

猜你喜欢

热点阅读