InnoDB引擎补充
MySQL
服务器上负责对表中数据的读取和写入工作的部分是
存储引擎
,而服务器又支持不同类型的存储引擎,比如
InnoDB
、
MyISAM
、
Memory啥的,不同的存储引 擎一般是由不同的人为实现不同的特性而开发的,
真实数据在不同存储引擎中存放的格式一般是不同的
,甚至有的存储引擎比如
Memory都不用磁盘来存储数据,也就是说关闭服务器后表中的数据就消失 了。由于
InnoDB
是
MySQL默认的存储引擎,也是我们最常用到的存储引擎,我们也没有那么多时间去把各个存储引擎的内部实现都看一遍,了解了一个存储引擎的数据存储结构之后,其他的存储引擎都是依葫芦画瓢,等我们用到了再说哈~
InnoDB页简介
InnoDB
是一个将表中的数据存储到磁盘上的存储引擎,所以即使关机后重启我们的数据还是存在的。而真正处理数据的过程是发生在内存中的,所以需要把磁盘中的数据加载到内存中,如果是处理写入
或修改请求的话,还需要把内存中的内容刷新到磁盘上。而我们知道读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时,
InnoDB存储引擎需要一条一条的把记录 从磁盘上读出来么?不,那样会慢死,
InnoDB
采取的方式是:
将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,
InnoDB
中页的大小一般为
16
KB
。也就是在一般情况下,一次最少从磁
盘中读取
16KB
的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中。