MySQL引擎之Innodb存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),它是MYSQL版本5.5之后的默认存储引擎
Innodb使用表空间进行数据存储
查看表空间:
展示结果:
Value值:
ON:独立表空间,tablename.ibd
OFF:系统表空间,ibdataX ,X是一个数字
系统表空间和独立表空间如何选择?
- 系统表空间会产生IO瓶颈,刷新数据的时候是顺序进行的所以会产生文件的IO瓶颈
- 独立表空间可以同时向多个文件刷新数据
Innodb存储引擎的特性
- 支持事务的ACID特性
- Innodb支持行级锁,可以最大程度的支持并发
MyISAM和InnoDB对比
对比项 | MyISAM | InnoDB |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作 | 行锁,操作时只锁住某一行,不对其他行有影响,适合高并发的操作 |
缓存 | 只缓存索引,不缓存真实数据 | 不仅缓存索引,还缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响 |
表空间 | 小 | 大 |
关注点 | 性能 | 事务 |
默认安装 | Y | Y |