MySql - 多条语句是怎么存入磁盘的

咱们已经知道了每一行的数据的格式,以及多行数据是紧凑的合并在一块儿。若是此时这个表的数据有一千万行,那咱们进行查询的时候,效率是很低的,因此mysql就会把这些数据经过数据页的形式分割起来,相似于分组,查找的时候直接根据数据页的信息就知道是否存在某些数据。每一个数据页的大小是16kb,因此一个数据页能存多少行数据,取决于这个行数据占用多少容量,好比一行就占用1kb,那这个数据页就有16行,若是一行只有0.1kb,那这个数据页就有160行,若是一行是20kb,那边须要2个数据页来存放。
image.png
固然数据页不单单只有咱们的数据,还有其余信息。行经过数据头的next_record单向链表来指向下一个行的位置,数据页是维护一个双向链表来指向每一个数据页的关系。除了这个,数据页还保护文件头、文件尾、数据页目录等信息。
image.png
每64个连续的数据页对应着一个数据区。每一个数据区的大小就是64*16kb=1M。
image.png
在数据区的上面,还有一个数据区组,每个数据区组保护了256个数据区,因此一个数据区组的大小是256M。
image.png
多个数据区组的数据,就是咱们的ibd文件,好比咱们表名是test,那磁盘上就有一个test.ibd文件。
image.pngmysql

相关文章
相关标签/搜索