InnoDB引擎逻辑存储结构
TableSpace:表空间(idb文件),一个mysql实例对应多个表空间,用于存储记录、索引等数据。
Segment:段,分为数据段、索引段、回滚段、InnoDB是索引组织表,数据段就是B+树的叶子结点,索引段位B+树的非叶子结点。
Extent:区,表空间内的单元结构,每个区的大小为1MB。默认情况下InnoDB存储引擎页大小为16K,即一个区中有64个页。
Page:页,InnoDB存储引擎磁盘管理的最小单元,默认为16KB。为保证页的连续,InnoDB存储引擎每次从磁盘申请4-5个区。
Row:行,InnoDB存储引擎数据是按行存放的。
Trx_id:每次对某条记录进行修改时,都会把对应的事务id赋值给Trx_id隐藏列。
Roll_point:每次对某条记录进行修改时,都会把旧的版本写入到Udo日志中,然后这个隐藏列相当于一个指针,可以通过它来找到修改前的信息。
架构内存架构Buffer Poll:缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,先操作缓冲池中的数据(如果缓冲池中没有数据,则从磁盘中加 ...
MySQL存储引擎一、存储引擎简介存储引擎是存储数据、建立索引、更新、查询数据的实现方式,在MySQL中存储引擎是基于表的,也可以称为表类型。
123create table 表名( 字段 ...)engine=INNODB;
二、常见存储引擎1. InnoDBInnoDb是一种兼顾高性能和高可靠性的存储引擎,在MySQL5.5版本后为默认的存储引擎。
DML操作遵循ACID模型,支持事务。
支持行级锁,提升并发访问性能。
支持外键约束,保证数据的完整性和正确性。
tablename.ibd:表空间文件,存储表结构、数据和索引。
逻辑存储结构
TableSpace:表空间
Segment:段
Extent:区
Page:页
Row:行
2. MyISAMMyISAM是MySQL早期的默认存储引擎。
不支持事务,不支持外键。
支持表锁,不支持行锁。
访问速度快。
tablename.sdi:存储表结构信息
tablename.MYD:存储数据
tablename.MYI:存储索引
3. MemoryMemory引擎的表数据是存储在内存中,只能用于临时表活缓存使用。
内 ...