Mysqlinnodb底层存储目录Contents01Part
02Part
04Part
03Part
扇区、磁盘块和数据页B+树存储结构索引组织表数据页结构和行记录扇区、磁盘块和数据页01Part
扇区扇区磁盘数据的最小单元,大小为512字节,在物理层面上是真实存在的;扇区的划分可以让硬盘更好的管理空间
磁盘块由于扇区太小,文件系统按照扇区去读取数据会相当慢,所以有了block(磁盘块)的概念
磁盘块由1个或者连续几个(2^n)相邻的扇区组成,是操作系统与磁盘交互的最小单位,操作系统可以把2^n个扇区数据一次性加载到内存进行快速读取
一个块大小=一个扇区大小*2的n次方,n是可以修改的,由操作系统决定n的大小;数据页数据页=2^n磁盘块,数据页是Mysql操作的最小单位,Innodb里面一般为16KB,lKB=1024字节=2个扇区,不过也可能是8KB、32KB或者其他值,这跟MySQL的存储引擎对数据的存储方式有很大的关系,innodb存储引擎页大小为16KB,16x1024=16384字节
可以存储英文字符16384个,中文8192个
innodb存储引擎页大小为16KB,16x1024=16384字节
可以存储英文字符16384个,中文8192个
拿常见的表举例,一般一行数据占用字节数在100~300个字节
一个数据页在剔除100个字节(存储其它信息)之后,(16384-100)/300=54
考虑大多业务场景下(除开日志记录、大字段记录等),y一个数据页正常存储的行数量在16~60之间
表空间、段、区表空间:Innodb存储引擎按照表空间方式对数据进行存放,默认情况下,innodb建立共享的表空间文件,用于存储表所有的有关存储数据,也允许启动innodb_file_per_table为每个表设立自身的表空间,表的数据、索引和缓存BitMap页都放在自