简单总结MyISAM和InnoDB的区别
2019-01-15更新:
MyISAM | InnoDB | |
---|---|---|
存储结构 | 每个MyISAM分三个文件存储:.frm存储表的定义;.MYD存储数据;.MYI存储索引 | 所有表数据存在一种文件中 |
存储空间 | 可压缩 | 在内存中建立专用缓冲池,用于高速缓存 |
备份和恢复 | 数据存在文件中,转移方便,可针对某张表备份 | mysqldump备份大数据时效率低 |
事务支持 | 不支持 | 支持事务、外键等高级事务功能 |
全文索引 | 支持全文本类型的全文索引 | 不支持全文索引(可借助sphinx插件实现) |
表锁 | 只支持表级锁 | 支持事务和行级锁,行级锁只对where子句有效 |
表主键 | 允许没有主键的表 | 没有定义主键会自动生成6字节的主键 |
表的行数 | 事先维护总行数,count聚合函数直接返回这个值 | 不保存总行数,count遍历整张表 |