关于mysql:MySql-多条语句是怎么存入磁盘的

3次阅读

共计 540 个字符,预计需要花费 2 分钟才能阅读完成。

咱们曾经晓得了每一行的数据的格局,以及多行数据是紧凑的合并在一起。如果此时这个表的数据有一千万行,那咱们进行查问的时候,效率是很低的,所以 mysql 就会把这些数据通过数据页的模式宰割起来,相似于分组,查找的时候间接依据数据页的信息就晓得是否存在某些数据。每个数据页的大小是 16kb,所以一个数据页能存多少行数据,取决于这个行数据占用多少容量,比方一行就占用 1kb,那这个数据页就有 16 行,如果一行只有 0.1kb,那这个数据页就有 160 行,如果一行是 20kb,那边须要 2 个数据页来寄存。

当然数据页不仅仅只有咱们的数据,还有其余信息。行通过数据头的 next_record 单向链表来指向下一个行的地位,数据页是保护一个双向链表来指向每个数据页的关系。除了这个,数据页还爱护文件头、文件尾、数据页目录等信息。

咱们引入数据页就是为了分组,然而只有 16kb 的数据页,在大量数据背后,作用还是微不足道,所以每 64 个间断的数据页对应着一个数据区。每个数据区的大小就是 64*16kb=1M。

在数据区的下面,还有一个数据区组,每一个数据区组爱护了 256 个数据区,所以一个数据区组的大小是 256M。

多个数据区组的数据,就是咱们的 ibd 文件,比方咱们表名是 test,那磁盘上就有一个 test.ibd 文件。

正文完
 0