MySQL引擎之Innodb存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),它是MYSQL版本5.5之后的默认存储引擎
Innodb使用表空间进行数据存储
查看表空间:
show variables like 'innodb_file_per_table';
展示结果:

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

被折叠的 条评论
为什么被折叠?



