首页 > 数据库 >postgresql中fork的含义

postgresql中fork的含义

时间:2023-06-23 13:55:11浏览次数:54  
标签:fork main postgresql 含义 returns relation 页面 size

pg_relation_size ( relation regclass [, fork text ] ) → bigint

Computes the disk space used by one “fork” of the specified relation. (Note that for most purposes it is more convenient to use the higher-level functions pg_total_relation_size or pg_table_size, which sum the sizes of all forks.) With one argument, this returns the size of the main data fork of the relation. The second argument can be provided to specify which fork to examine:

  • main returns the size of the main data fork of the relation.

  • fsm returns the size of the Free Space Map (see Section 68.3) associated with the relation.

  • vm returns the size of the Visibility Map (see Section 68.4) associated with the relation.

  • init returns the size of the initialization fork, if any, associated with the relation,无日志表和索引有(参见https://postgrespro.com/blog/pgsql/5967858,恢复时用到).

 

  一个表通常具有4个fork,main(第一个,数据本身,包括表和索引), fsm,vm(对所有事务都可见的页面,仅包含冻结元素的页面,查询优化目的,索引没有vm,每个页面2位,第一位表示页面中的所有元素对所有事务可见,用于确认是否可使用Index only scan;第二位,表示页面是否冻结,如果冻结了,anti-wraparound vacuum不需要访问该页面。设置了一定成立,未设置未必不成立,pg_visibility可用来检查实际值),init。

  vacuum与否对性能还是有较大的影响,具体可参见postgresql/lightdb vacuum对性能的影响

 

 参考:

https://habr.com/en/company/postgrespro/blog/469087/

 

标签:fork,main,postgresql,含义,returns,relation,页面,size
From: https://www.cnblogs.com/lightdb/p/14986542.html

相关文章

  • 在Linux环境下安装PostgreSQL
    在Linux环境下安装PostgreSQL由于实际的生产环境,PostgreSQL数据库都是部署在linux服务器上的,因此记录一下通过源码安装与命令行操作PG数据库的过程下载官方下载网址:https://www.postgresql.org/ftp/source/我这里下载的是PostgresSQL源码版本为:postgresql-13.3.tar.gz安装......
  • 模块化和组件化的含义及区别
    1、模块化【代码逻辑角度划分】用于保证每个模块的只能单一比如药品管理,就是一个模块,包含了列表,添加,修改,删除;2、组件化【UI界面角度划分】页面上的每个独立区域,都可作为一个组件,便于组件复用3、区别划分角度不同4、为什么要使用模块化和组件化开发和调试的效率更高......
  • postgresql获取基于当前时间计算的当月第一天,最后一天,下个月的第n天等功能
    问题现象:​今天在项目开发中遇到了一个需求,在编写某个功能时,需要使用到基于某个时间(如当前时间),去获取本月第一天或下个月的第一天的数据.问题分析:通过查询资料可以得知,要实现这个需求并不容易,在sql语句中就能很好的获取到,这里我使用的是postgresql数据库,其他数......
  • postgresql数组数据
    一个包含数组的数据表插入数组有两种方法1:'{张三,李四,王五}'2:  array['张三','李四','王五']用单引号,不用双引号insertintopublic.hi6values('2023-9-22',array['张三','李四'],'{王五,孙六,黄七}','test4'); 查询嘉宾......
  • PostgreSQL 时间函数 extract函数和epoch 新纪元时间的使用
    Extract属于SQL的DML(即数据库管理语言)函数,同样,InterBase也支持Extract,它主要用于从一个日期或时间型的字段内抽取年、月、日、时、分、秒数据,因此,它支持其关健字YEAR、MONTH、DAY、HOUR、MINUTE、SECOND、WEEKDAY、YEARDAY。计算时间差天数selectextract(dayFROM(age(......
  • PostgreSQL合并多行数据为一行,string_agg函数
    通过id列来聚合belong_user_saved列,应用string_agg函数,只要id一样则把第二列通过逗号连接起来聚合前:聚合后:SELECT C.ID, string_agg(u.name::varchar,',')belong_user_savedFROM customerC leftjoincustomer_territoryctonct.customer=c.id leftjoinuser_......
  • PostgreSql的聚合函数--string_agg
    聚合函数顾名思义,聚合函数就是类似于min(),max(),sum()等函数,当然这些都是SQL标准的函数,应该都是比较熟悉,也比较常见。这边不对这些常见的函数进行介绍,主要涉及的是PostgreSql自带的一些特色聚合函数进行介绍,自己学习,也与大家共享。主要介绍的聚合函数:String_agg,xmlagg,array_ag......
  • pgsql获取日期段_PostgreSQL时间段查询
    1.今日select*from"表名"whereto_date("时间字段"::text,'yyyy-mm-dd')=current_date2.昨日select*from"表名"whereto_date("时间字段"::text,'yyyy-mm-dd')=current_date-13.最近半个月select*from"表名"......
  • postgreSQL数据库 id自增
    感谢!!!原文:https://blog.csdn.net/weixin_43453621/article/details/1258907742.链接上postgreSQL数据库3.新建表4.增加序列6.添加ID自增长nextval('swp_id'::regclass)或者nextval('swp_id')前者是完整语句后者是简写系统会自动添::regclass,都一样的7.保存最后......
  • postgresql 导入数据库表并重设自增属性的操作
    postgresql使用navicat软件导出数据库表,在导入会数据库的操作。postgresql的自增字段是通过序列sequence来实现的。1、先删除导出的数据库表中的自增属性2、导入数据库表之后,需要创建序列。注:一般序列名称由数据表名+主键字段+seq组成(通常情况下主键字段即为自增字段),如下......