InnoDB支持事务、行级锁、外键、崩溃恢复和MVCC;数据存储于表空间,以页为单位管理,行格式包括DYNAMIC等,索引采用聚集结构,通过redo log和undo log保障数据一致性与恢复能力。

InnoDB 是 MySQL 中最常用的存储引擎之一,特别适合处理大量数据和高并发的场景。它的设计目标是提供高性能、高可靠性和良好的事务支持。
InnoDB 的主要作用
1. 支持事务(ACID 特性)
InnoDB 完全支持事务的原子性、一致性、隔离性和持久性。通过 COMMIT 和 ROLLBACK 可以控制事务的提交与回滚,确保数据操作的安全性。
2. 行级锁定
与 MyISAM 的表锁不同,InnoDB 使用行级锁,能够在并发写入时减少锁冲突,提高多用户环境下的性能。
3. 外键支持
InnoDB 支持外键约束,可以保证数据库的引用完整性,防止出现“孤儿记录”。
4. 崩溃恢复能力
InnoDB 具备良好的崩溃恢复机制,通过重做日志(redo log)和回滚日志(undo log)在数据库异常关闭后自动恢复数据。
5. MVCC(多版本并发控制)
InnoDB 使用 MVCC 实现非锁定读,提高读操作的并发性能,尤其是在 READ COMMITTED 和 REPEATABLE READ 隔离级别下。
InnoDB 的格式:文件结构与组织方式
InnoDB 的数据存储格式主要涉及以下几个方面:
1. 表空间(Tablespace)
InnoDB 将数据存储在表空间中,分为系统表空间和独立表空间。
系统表空间(如 ibdata1):包含数据字典、双写缓冲、回滚段等全局信息。独立表空间(.ibd 文件):每个表的数据和索引存储在单独的 .ibd 文件中,由参数 innodb_file_per_table = ON 控制。
2. 数据页结构
InnoDB 管理数据的基本单位是页,默认大小为 16KB。每个页包含多行记录,并带有头部、行记录区、空闲空间、目录等结构。
3. 行格式(Row Format)
决定每行数据在磁盘上的存储方式,常见的有:
COMPACT:节省空间,是早期默认格式。DYNAMIC:支持大字段(如 TEXT/BLOB)外部存储,当前多数版本默认。REDUNDANT:旧格式,兼容老版本。COMPRESSED:启用压缩功能,节省磁盘空间。
可通过 CREATE TABLE 或 ALTER TABLE 指定:
ROW_FORMAT=DYNAMIC
PPT.CN,PPTCN,PPT.CN是什么,PPT.CN官网,PPT.CN如何使用
一键操作,智能生成专业级PPT
37 查看详情
4. 索引结构
InnoDB 使用聚集索引(Clustered Index),表数据按主键顺序存储。如果没有显式定义主键,InnoDB 会自动生成一个隐藏的 6 字节主键。
辅助索引(Secondary Index)叶子节点存储的是主键值,查找时需回表。
5. 重做日志与归档日志
– redo log:记录数据页的物理修改,用于崩溃恢复,存储在 ib_logfile0/1 中。
– undo log:记录事务前的旧值,用于回滚和 MVCC。
基本上就这些。理解 InnoDB 的作用和格式有助于优化数据库设计和提升系统稳定性。
以上就是mysql中如何InnoDB作用和格式是什么?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/581980.html
微信扫一扫
支付宝扫一扫