MySQL存储引擎 InnoDB和MyISAM的区别
2019-06-15 本文已影响0人
阳光灿烂的馒头
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就是首选了。
总之两种类型都有自己的有优缺点,使用哪一个完全要看实际情况。