5 FSM
FSM是空闲空间映射文件,记录着heap和index的每个page的空闲空间信息,有利于快速定位到有充足空闲空间的page以便存储tuple,如果没有定位到则需要扩展新page。除了Hash Index文件没有FSM文件,其他heap和index都需要FSM文件。
总体上,FSM采用3-4级多叉树的结构组织FSM page,单个FSM page内部采用完全二叉树的结构进行管理,高级别FSM page的叶子节点关联低级别的FSM page,低级别FSM Page的叶子节点存储着heap、index page的可用空间数目,而非叶子结点依次存储叶子节点的最大可用空间数目,每个节点占用1个字节。
6 VM
VM是可见性映射文件,记录着每个heap page的可见性信息,因此index page并没有vm文件。一方面它可以提高vacumn的执行效率,另一方面通过vm文件可以感知到page内的元组是否全部可见,如果全部可见的话,查询引擎查询索引元组直接获取到数据即可,不必再访问数据元组检查可见性,减少了回表次数,极大提升了查询的效率。
VM采用位图的结构存储可见性信息,每个heap page只在vm文件中存储2位,第一位代表元组是否全部可见,第二位代表元组是否全部被冻结。
#define VISIBILITYMAP_ALL_VISIBLE 0x01
#define VISIBILITYMAP_ALL_FROZEN 0x02
文章评论