【MySQL】InnoDB vs MyISAM
MySQL默认数据库引擎 | 事务支持 | 索引类型 | 索引数据结构 | 对锁的支持 | 使用场景 | 关于count(*) | 外键支持 | |
InnoDB | 5.1版本后,是 | 默认为Read committed | 聚集索引,叶子节点直接存储数据;非主键索引先查询主键,数据和主键存储在一起,没有主键时使用第一非空的唯一索引(NOT NULL and UNIQUE INDEX),也没有的话使用6字节的自增数值作为聚簇索引 | B+树 | 行锁和表锁 | 支持事务 | 需要扫描数据查询 | 支持 |
MyISAM | 5.1版本后,否 | 不支持 | 非聚集索引,叶子节点存储主键信息;非主键索引直接查询数据,数据单独存储 | B+树 | 表锁 | 不需要支持事务,读多写少 | 存储直接输出,注意如果查询含where字句,仍需要扫描数据查询 | 不支持 |