1.介绍
MySQL中的文件系统,用来和"磁盘"交互.
2.类型
Innodb 默认 MyIsam 5.5之后不用了
show engins;
3.InnDB 核心特性
transaction:事务 CR(Crash recovery): 自动故障恢复 MVCC: 多版本并发控制 热备: 行锁 AHI:自适应哈希索引 change buffer:更改缓冲区 DWB: 双写缓冲区 外键
3.1事务
事务的特性
3.2 MVCC
3.3行锁
4.InnoDB体系结构
4.1On_disk
4.1.1 TBS(TableSpace)表空间
a.系统表空间: ibdata1 8.0.19+ :Change buffer 8.0.11-8.0.19: Change buffer, DWB 5.7 :Change buffer, DWB,IDD,UNDO 5.6 :Change buffer, DWB,IDD,UNDO,tmp
b.用户表空间 8.0 :xxx.ibd---->单张表的数据字典+数据行+索引 5.5-5.7: xxx.frm:单张表数据字典 xxx.ibd:数据行+索引
说明: MyIsam:t1.frm t1.myi t1.myd
c.undo表空间 undo_001 undo_002 5.7版本之后可以独立存储,8.0之后默认独立 作用:存储回滚日志.负责事务回滚,MVCC快照功能.
d.temp表空间: ibtmp1 存储临时数据.
4.1.2 其他
a. DWB(.dblwr):双写缓冲区,数据在写入磁盘数据页之前先写入DWB一份.防止数据页写坏时可以从DWB找到副本. b. ib_buffer_pool:预热(把访问频繁的数据页dump到磁盘上,当重新启动时将其加载到内存)可以加速重新启动时加载内存的速度(顺序IO了) c. redo 重做日志 ib_logfile0 ib_logfile1 记录数据页数据的变动 d. mysql.ibd 存储mysql库下的所有表信息.
4.2in-memory
buffer pool 缓冲和缓存数据页和索引页.MYSQL最大的内存区域.一般配置为物理内存的50-75%
log buffer 缓冲redo log 记录内存数据页的变化,日志的变化字节量会自动更新到LSN中. 内存中数据页的修改会在log_buffer中,最后这个日志会记录到redo_log中,数据会记录到磁盘中.
change buffer AHI
|