20.2.2 MySQL表级锁的锁模式
MySQL的表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。锁模式的兼容性如表20-1所示。
表20-1 MySQL中的表锁兼容性
|
是否兼容 当前锁模式 |
None |
读锁 |
写锁 |
|
读锁 |
是 |
是 |
否 |
|
写锁 |
是 |
否 |
否 |
可见,对MyISAM表的读操作,不会阻塞其他用户对同一表的读请求,但会阻塞对同一表的写请求;对MyISAM表的写操作,则会阻塞其他用户对同一表的读和写操作;MyISAM表的读操作与写操作之间,以及写操作之间是串行的!根据如表20-2所示的例子可以知道,当一个线程获得对一个表的写锁后,只有持有锁的线程可以对表进行更新操作。其他线程的读、写操作都会等待,直到锁被释放为止。
表20-2 MyISAM存储引擎的写阻塞读例子
|
session_1 |
session_2 |
|
获得表film_text的WRITE锁定 mysql> lock table film_text write; Query OK, 0 rows affected (0.00 sec) |
|
|
当前session对锁定表的查询、更新、插入操作都可以执行: mysql> select film_id,title from film_text where film_id = 1001; +---------+-------------+ | film_id | title | +---------+-------------+ | 1001 | Update Test | +---------+-------------+ 1 row in set (0.00 sec) mysql> insert into film_text (film_id,title) values(1003,'Test'); Query OK, 1 row affected (0.00 sec) mysql> update film_text set title = 'Test' where film_id = 1001; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 |
其他session对锁定表的查询被阻塞,需要等待锁被释放: mysql> select film_id,title from film_text where film_id = 1001; 等待 |
|
释放锁: mysql> unlock tables; Query OK, 0 rows affected (0.00 sec) |
等待 |
|
|
Session2获得锁,查询返回: mysql> select film_id,title from film_text where film_id = 1001; +---------+-------+ | film_id | title | +---------+-------+ | 1001 | Test | +---------+-------+ 1 row in set (57.59 sec) |
| 回书目 上一节 下一节 |
|
||||
| · 隐私保护技术探讨 · WCF开发基础 · 珊瑚虫QQ作者侵权案开庭 · SQL Server 2008/2005.. · 华为员工自杀频频拷问.. · 计算机网络维护入门 · 开源虚拟化技术Xen · 贝恩资本携手华为22亿.. |
· 如何优化IT 控制能耗 · VMware技术应用 · 打造安全服务器 · iSCSI应用与发展 · FTTx光纤接入 · Windows Server 2008专.. · Linux——从菜鸟到高手 · 微软出价446亿美元收购.. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · 病毒查杀专题 |
· 国际文档格式标准开战 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. · SOA 面向服务架构 · ADSL应用面面俱到 · 入侵防护系统(IPS)初探 · TCP/IP协议专题 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · Sniffer安全技术从入门.. · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 · TCP/IP协议专题 |
|||