1.MyISAM默认使用的是表级锁,不支持行级锁
2.InnoDB默认用的是行级锁,也支持表级锁
MyISAM不支持事物
InnoDB支持事物
表级锁就是在一个session访问的时候,MyISAM会将整个表给锁起来(读锁),如果有新session对这个表进行增删改时(写锁),会被阻塞
比如在一个session中手动加锁:
在另一个session中写:
就会失败
释放锁:
读锁也叫共享锁(即上了读锁,还能再上读锁)
写锁也叫排它锁(即上了写锁,就不能再上写锁了)
也可以对select语句添加排它锁
行级锁
InnoDB对select语句进行了改进
InnoDB在sql没有用到索引的时候使用的是表级锁,sql用到索引的时候是用的行级锁和gap锁
MyISAM适合的场景
InnoDB适合的场景