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就是首选了。

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

你可能感兴趣的:(MySQL存储引擎 InnoDB和MyISAM的区别)