存储引擎:根据Mysql提供的文件访问层抽象接口定制的一种文件访问机制,存储引擎在mysql架构中位于第三位,负责Mysql中的数据存储与提取;
show engines --查看当前数据库支持的引擎信息,5.5版本之前采用MyISAM存储引擎,5.5开始采用Inoodb存储引擎;2、存储引擎对比
1、InnoDB:支持事务,具有提交,回滚和崩溃恢复能力,事务安全; 适合增删改操作 2、MyISAM:不支持事务,查询访问速度快; 适合查询操作 3、Memory:利用内存创建表,访问速度非常快,因为数据在内存,而且默认使用hash索引,但是一旦关闭,数据立刻丢失3、InnoDB和MyISAM的区别
| 对比项 | MyISAM | InnoDB |
|---|---|---|
| 外键 | 不支持 | 支持 |
| 事务 | 不支持 | 支持 |
| 行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 | **行锁,**操作时只锁某一行,不对其它行有影响, 适合高并发的操作 |
| 缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
1、事务和外键 InnoDB支持事务和外键,具有安全性和完整性,适合大量insert或update操作; MyISAM不支持事务和外键,提供了高速存储和检索,适合大量的select操作; 2、锁机制 innoDB支持行/表级锁,锁定指定记录; #基于索引来加锁 MyISAM支持表级锁,锁定整张表; 3、索引结构 InnoDB使用聚集索引,索引和记录在一起存储,即缓存索引,也缓存记录; MyISAM使用非聚集索引,索引和记录分开; 4、并发能力处理 MyISAM使用表锁,会导致写操作并发率低,读之间并不阻塞,读写阻塞; InnoDB读写阻塞可以与隔离级别有关,可以采用多版本并发控制(MVCC)来支持高并发; 5、存储文件 InnoDB对应两个文件:一个.frm表结构文件,一个.ibd文件; MyISAM对应三个文件:一个.frm表结构文件,一个MYD文件,一个MYI索引文件; 6、业务场景 innoDB:事务/并发修改; MyISAM:最求快速查询,且数据修改少;



