1.表锁
偏读
偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁定力度大,发生锁冲突的概率最高,并发度最低
手动加表锁:lock table 表名 read(write), 表名字 read(write),...;
查看表上加过的锁:show open tables;
解锁:unlock tables;
1.1 加读锁:
session1对一个表加了读锁,session1可以读这个表,但不能修改这个表,session1也不能读其他表;session2可以读这个表,session2修改这个表会被阻塞
1.2 加写锁:
session1对一个表加了写锁,session1可以读、可以写这个表,但不能读其他表;session2读这个表、写这个表都会被阻塞
MyISAM在执行查询语句前,会自动给设计的所有表加读锁,在执行增删改操作前,会自动给涉及的表加写锁。
- 表共享读锁
- 表独占写锁
对MyISAM表的读操作(加读锁),不会阻塞其他其他进程对同一表的读请求,但会阻塞对同一表的写请求,只有当读锁释放后,才会执行其他进程的操作
对MyISAM标的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其他进程的读