MySQL存储引擎 InnoDB和MyISAM的区别

InnoDB:

1.支持事物处理,回滚,操作具有原子性

2.不加锁读取

3.支持外键,不支持全文检索

4.支持行锁

5.不支持FULLTEXT类型索引

6.不保存表的具体行数,通过扫描表来计算有多少行

7.DELETE表时,是一行一行的删除数据

8.InnoDB把数据和索引存放在表空间里

9.跨平台可以直接靠拷贝使用

10.    InnoDB中包含AUTO_INCREMENT类型字段得索引,表格很难被压缩。

MyISAM:

1.不支持事务,回滚将造成不完全回滚,不具有原子性

2.不支持外键

3.支持全文检索

4.保存表的具体行数,不带where时,直接返回保存的行数

5.DELETE表时,先DROP表,然后在重建表

6.MyISAM表被存放在三个文件,frm文件存放表格定义,数据文件是MYD(MYdata),索引文件是MYI(MYIndex)引申

7.跨平台很难直接被使用

8.MyIASM中使用AUTO_INCREMENT类型字段建立联合索引表格可以被压缩

选择

因为MyISAM相对简单所以在效率上要优于InnoDB,如果系统读多,写少。对原子性要求较低。那么MyISAM最好的选择,且MyISAM恢复速度快,可直接备份恢复

如果哦系统读少,写的多的时候,尤其是并发写入高的时候,InnobDB就是首选了。

总之两种类型都有自己的有优缺点,使用哪一个完全要看实际情况。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容