分类:
- 表锁
- 行锁
- 页锁
表锁:
偏向myisam存储引擎,开销小,加锁快;无死锁;锁定粒度大,发生锁冲突的概率最大,并发率最低。
建立一个实例:
- 建表
然后插入几个数据:CREATE TABLE mylock( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20) )ENGINE=MYISAM;
INSERT INTO mylock(name) VALUES("a"); INSERT INTO mylock(name) VALUES("b"); INSERT INTO mylock(name) VALUES("c"); INSERT INTO mylock(name) VALUES("d"); INSERT INTO mylock(name) VALUES("e");
- 利用
SHOW OPEN TABLES;发现所有的表都没有上锁。
- 给刚刚建立的表mylock上一个写锁,然后给之前的book表上一个读锁。
-
然后再登入一个MySQL账号,验证是否锁住(读锁)
首先利用左用户(页面放在左边的cmd)锁住mylock表,分别进行
左用户读mylock表,左用户改mylock表,左用户读book(其他表),左用户改book(其他表)
右用户读mylock表,右用户改mylock表,右用户读book(其他表),右用户改book(其他表)
- 写锁