mysql InnoDB与MyISAM的区别

阅读数:12 评论数:0

跳转到新版页面

分类

数据库

正文

1、InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务。

2、InnoDB支持外键,而MyISAM不支持。

3、InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主主键索引效率很高。MyISAM是非聚集索引。

(1)聚簇索引:.frm 存放的是表结构,.ibd存放数据和索引

(2)非聚簇索引:.frm存放表结构,.MYI存放索引数据,.MYD存放数据。

4、InnoDB不保存表的具体行数,而MyISAM用一个变量保存整个表的行数。

5、InnoDB不支持全文索引,而MyISAM支持全文索引。

6、innodeb支持表锁和行锁,Myisam支持表锁。

在选择存储引擎时,如果是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性、并发性要求不高,使用MyISAM。