innodb与myisam


引擎 事务 外键 索引
innodb 行锁 聚簇
myisam 表锁 非聚簇

版本变更myisam:5.5以前默认engine  innodb:5.5之后默认engine
表锁区别

  • 表锁过程
    • innodb的表锁是需要时间的,就好像一条没有索引的sql,全表扫描,检索到一条记录就锁一条,还没有检索到记录就不会锁,直到sql执行完成,统一释放,适用于update,delete,select(主动加锁的情况)这三种情况造成表锁的场景
    • myisam的表锁是立即锁定,直到sql执行完成,释放锁
  • 锁表之后区别
    • 相同点
      • update,delete,insert都会阻塞
    • 不同点
      • innodb表锁不会阻塞select
      • myisam表锁会阻塞

性能比较
在myisam中大部分的sql语句,都是表锁,并发性没有innodb强

results matching ""

    No results matching ""