每一个堆和索引关系(除了哈希索引)都有一个空闲空间映射(FSM)来保持对关系中可用空间的跟踪。它伴随着主关系数据被存储在一个独立的关系分支中,以关系的文件节点号加上一个_fsm
后缀命名。例如,如果一个关系的文件节点是12345,那么FSM被存储在一个名为12345_fsm
的文件中,该文件与主关系文件在同一个目录中。
空闲空间映射被组织成一棵FSM页面的树。底层FSM页面存储了在每一个堆(或索引)页面中可用的空闲空间,对于每一个这样的页面使用一个字节来表示。上层FSM页面则聚集来自于下层页面的信息。
在每一个FSM页面中是一个二叉树,存储在一个数组中,每一个节点一个字节。每个叶节点表示一个堆页面或者一个下层FSM页面。在每一个非叶节点中存储了它孩子节点中的最大值。因此叶节点中的最大值被存储在根中。
关于如何构建、更新和搜索FSM的更多信息请参考src/backend/storage/freespace/README
。pg_freespacemap模块可以用来检查存储在空闲空间映射中的信息。
SQL 约束(Constraints) SQL 约束(Constraints) SQL 约束用于规定表中的数据规则。 如果存在违反约束的数据行为,行为会被约...
SQL 用于各种数据库的数据类型 Microsoft Access、MySQL 和 SQL Server 所使用的数据类型和范围。Microsoft Access 数据类型 数...
SQL Server GETDATE() 函数 SQL Server Date 函数定义和用法 GETDATE() 函数从 SQL Server 返回当前的日期和时间。 语法GETDATE(...
SQL ALTER TABLE 语句ALTER TABLE 语句 ALTER TABLE 语句用于在已有的表中添加、删除或修改列。 SQL ALTER TABLE 语法 如需在表...
SQL AVG() 函数AVG() 函数 AVG() 函数返回数值列的平均值。 SQL AVG() 语法SELECT AVG(column_name) FROM table_name演示数...