问十五:MyISAM与InnoDB如何加锁?

 

1.MyISAM默认使用的是表级锁,不支持行级锁

2.InnoDB默认用的是行级锁,也支持表级锁

MyISAM不支持事物

InnoDB支持事物

 

表级锁就是在一个session访问的时候,MyISAM会将整个表给锁起来(读锁),如果有新session对这个表进行增删改时(写锁),会被阻塞

比如在一个session中手动加锁:

在另一个session中写:

就会失败

释放锁:

读锁也叫共享锁(即上了读锁,还能再上读锁)

写锁也叫排它锁(即上了写锁,就不能再上写锁了)

 

也可以对select语句添加排它锁

 

行级锁

InnoDB对select语句进行了改进

InnoDB在sql没有用到索引的时候使用的是表级锁,sql用到索引的时候是用的行级锁和gap锁

MyISAM适合的场景

InnoDB适合的场景

 

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-12-19 10:45
秋招路在何方:少了啊,我身边都是350000k*18,发三体货币
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务