存储引擎InnoDB和MyISAM的区别
1. MySQL的存储引擎
1. 在设计表→选项中可以看到MySQL的存储引擎有以下这些,但是常用的有InnoDB和MyISAM这两种

2. 存储引擎的特点
1. InnoDB:支持事务和外键,具有提交,回滚和崩溃回复能力,安全性较高
2. MyISAN:不支持事务和外键,支持全文索引,访问速度快
3. Memory:利用内存创建表,访问速度快,支持哈希索引,一旦关闭,数据会丢失
4. Archive:归档类型引擎,仅支持insert和select语句
5. Csv:以csv文件进行数据存储,用于文件限制,所有列必须强制指定not null,不支持索引和分区
6. BlackHole:黑洞,只进不出,所有插入数据不会被保存
7. MRG_MyISAM:一组MyISAM表的组合,这些MyISAM表必须结构相同,Merge表本身没有数据,对Merge操作可以对一组MyISAM表进行操作
2. InnoDB和MyISAM的区别
1. InnoDB支持事务,MyISAM不支持事务
InnoDB每一条SQL语句都是一条事务,自动提交,安全性较高,但是影响速度
2. InnoDB支持外键,MyISAM不支持
InnoDB可以和其他表设置外键foreign key,保证表之间的连接性
3. InnoDB是聚集索引,MyISAM是非聚集索引
InnoDB的表结构保存在.frm文件中,数据和索引绑定在data下的ibdataN文件中,而MyISAM则会生成三个文件,.frm文件保存表结构,.MYD文件保存数据内容,.MYI文件保存索引
4. InnoDB不支持全文索引,MyISAM支持全文索引
InnoDB在MySQL5.5版本之前是不支持全文索引的,在5.6版本之后开始支持全文索引
5. InnoDB支持表锁和行锁,MyISAM只支持表锁
表锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低
行锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高
浙公网安备 33010602011771号