区别 | MyISAM | InnoDB |
---|---|---|
事务 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
表的索引 | 非聚簇索引 | 聚簇索引 |
表的行数保存 | 保存 | 不保存 |
最小锁粒度的锁 | 表锁 | 行锁 |
说明:聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
区别 | MyISAM | InnoDB |
---|---|---|
事务 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
表的索引 | 非聚簇索引 | 聚簇索引 |
表的行数保存 | 保存 | 不保存 |
最小锁粒度的锁 | 表锁 | 行锁 |
说明:聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。