什么是填充因子

看到网上的例子都是用50%的填充因子来举例的,这样举例具不太容易让人明白。下面是我对填充因子的理解

什么是填充因子

设置数据要占用page空间的比例。比如设置70%,即数据至少要填充page空间的70%。

设置填充因子的主要作用是为新数据预留一定的空间,当有新数据时,可以插入到预留的空间里,从而避免分页的发生。

当索引被新建立时,会根据填充因子的设置,对page页进行数据填充,使其达到设置的比例值。例如:设置70%的填充因子,mysql会在page中填充占用70%的page空间的记录,预留30%的空闲空间。

填充因子只在新建索引及page分裂时,预留空间,保持设置的比例。在之后的插入,修改,更新操作时,不再维持这个比例。因为如果维持这个比例,就会造成频繁的分页操作,这就违背了设置填充因子的初衷—-为以后新插入的数据预留空间,降低page分裂的操作。

mysql会在page分裂后,判断page中的数据,如果记录占用的比例小于设置的值(如70%),则会把这个page中的数据移动到其它的page