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

 

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

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

MyISAM不支持事物

InnoDB支持事物

 

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

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

在另一个session中写:

就会失败

释放锁:

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

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

 

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

 

行级锁

InnoDB对select语句进行了改进

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

MyISAM适合的场景

InnoDB适合的场景

 

 

全部评论

相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
头像
06-05 19:01
运营
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务