myisam锁表机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wyongqing/article/details/82710560

锁表机制

  • 锁机制

a.加锁读(共享锁):不会阻塞读请求(select, insert),阻塞写(update, delete)请求
b.加锁写(独占锁):阻塞其它读写(select, delete, insert, update)请求

  • 锁耗时多长?
    取决于sql耗时。控制好sql耗时,锁表的问题并不大。

测试数据

生成1000万条测试数
表user(id, username, password, age, sex)
存储引擎MyISAM,id建立索引

加锁读,select,insert不阻塞,update,delete阻塞

打开两个客户端
客户端1全表扫描

select * from user

客户端2测试阻塞

select * from user limit 10;    #结果不阻塞

insert into user(username, password, age, sex)
values("aaaaa", "bbbb", 10, 1); #结果不阻塞

update user set username="aaa" where id =90001;  #结果阻塞

delete from user where id =10000006  #结果阻塞

加锁写,select,insert,update,delete都阻塞

客户端1全表扫描写

update set username="aaaaaaa"
where username="不存在的值让sql扫描全表"

客户端2测试阻塞

重复上面select, insert, update, delete结果都阻塞

《了凡四训》详解之改过之法
https://v.youku.com/v_show/id_XMzY5NTcxMDIwOA
印光大师十念法(胡小林主讲第1集)
http://v.youku.com/v_show/id_XMzUwMzc4NzY4NA
此生必看的科学实验-水知道答案
http://v.youku.com/v_show/id_XMjgzMzcwNDk4OA

猜你喜欢

转载自blog.csdn.net/wyongqing/article/details/82710560