MySQL 高级知识【 MyISAM 读锁写锁限制】


MyISAM 自动加锁机制

在执行查询语句(SELECT)前,会自动给涉及的所有表加读锁,在执行增删改操作前,会自动给涉及的表加写锁。

二、MySql 的表级锁的两种模式

1.表共享读锁(Table Read Lock)

当前session其他 session
读锁表
写锁表×阻塞更新
读未锁表×
写未锁表×

2.表独占写锁(Table Write Lock)

当前session其他 session
读锁表阻塞查询
写锁表阻塞更新
读未锁表×
写未锁表×

注意

1.有时效写锁测试没有效果是因为 mysql 存在查询缓存。
2.当手动连续执行两次锁表操作时,最后执行的语句生效。
	例如:
		LOCK TABLE test01 READ;
		LOCK TABLE test02 READ;
		(test02 表生效)

总结

  1. 对 MyISAM 存储引擎表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞同一表的写请求,只有当读锁释放后,才会执行其他进行的写操作。
  2. 对 MyISAM 存储引擎表的写操作(加写表),会阻塞其他进程对同一表的读和写作操,只有当写表释放后,才会执行其他进程的读写操作
  3. 简单来说:读锁会阻塞写,而写锁会阻塞读写
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值