MySQL存储引擎

存储引擎就是指表的类型以及表在计算机上的存储方式。
MySQL数据库及其分支版本主要的存储引擎有InnoDB、MyISA、Memory等。

InnoDB存储引擎

  • InnoDB是事务型数据库的首选引擎,支持事务ACID。
  • InnoDB支持行级锁,行级锁可以在最大程度上支持并发。
  • InnoDB是为处理巨大数据量的最大性能设计,InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。
  • InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按照主键顺序存放,如果没有显式在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键。
  • InnoDB支持崩溃数据自修复。当数据库异常崩溃后,数据库重新启动时会根据redo log进行数据恢复,保证数据库恢复到崩溃前的状态。

MyISAM存储引擎

  • MyISAM存储引擎不支持事务,所以对事务有要求的业务场景不能使用。
  • 其锁定机制是表级索引,虽然可以让锁定的实现成本很小,但是也同时大大降低了其并发性能。
  • 不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写入,但读本身并不会阻塞另外的读。
  • 只会缓存索引:MyISAM
上一篇:7.行锁功过:怎么减少行锁对性能的影响?


下一篇:MySQL进阶之路(十四)—— InnoDB中的锁是怎样的?一篇搞懂它!