PostgreSQL--体系结构
PostgreSQL--体系结构
MambaCloud
这个作者很懒,什么都没留下…
展开
-
PostgreSQL中的分区表
PostgreSQL中的分区表参考:https://www.xmmup.com/pgzhongdefenqubiao.html#PG_11xin_te_xingPostgreSQL分区的意思是把逻辑上的一个大表分割成物理上的几块。分区不仅能带来访问速度的提升,关键的是,它能带来管理和维护上的方便。分区表的具体好处:某些类型的查询性能可以得到极大提升更新的性能也可以得到提升,因为表的每块的索引要比在整个数据集上的索引要小。如果索引不能全部放在内存里,那么在索引上的读和写都会产生更多的磁盘访问原创 2022-03-09 06:00:00 · 5725 阅读 · 0 评论 -
PostgreSQL12系统视图pg_stats
PostgreSQL12系统视图pg_stats视图pg_stats提供对存储在pg_statistic目录中信息的访问名称类型引用描述schemanamenamepg_namespace.nspname包含表的模式名tablenamenamepg_class.relname表名attnamenamepg_attribute.attname被此行描述的列名inheritedbool如果为真,表示此行包括继承子列,不仅仅是指定表中的值原创 2022-02-09 06:00:00 · 673 阅读 · 0 评论 -
PostgreSQL中的执行计划
PostgreSQL中的执行计划EXPLAN预生成执行计划EXPLAN sql真实执行计划explan analyze sql输出详细内容explan(analyze on, timing on,verbose on,buffers on,costs on) sql语法EXPLAIN [ ( option [, ...] ) ] statement EXPLAIN [ ANALYZE ] [ VERBOSE ] statemen选项:analyze:执行语句并显示真正的运行时转载 2021-12-24 22:00:00 · 2134 阅读 · 0 评论 -
PostgreSQL中的pg_hba.conf
PostgreSQL中的pg_hba.conf环境:PG 13-bash-4.2$ pwd/var/lib/pgsql/13/data-bash-4.2$ more pg_hba.conf # TYPE DATABASE USER ADDRESS METHOD# "local" is for Unix domain socket connections onlylocal all all原创 2021-12-15 22:00:00 · 844 阅读 · 0 评论 -
PostgreSQL进程
PostgreSQL进程postmaster:数据库实例的总控进程,负责启动和关闭该数据库实例。用户可以运行postmaster、postgres命令加上合适的参数启动数据库。实际上postmaster命令是一个指向postgres的链接。当用户与postgresql数据库建立连接时,实际上是先与postmaster进程建立连接,此时,客户端程序会发出身份验证的消息给postmaster主进程,postmaster主进程根据消息中的信息进行客户端身份验证,如果验证通过,它会fork出一个子进程来为这原创 2022-01-23 06:00:00 · 1309 阅读 · 0 评论 -
PostgreSQL索引膨胀
PostgreSQL索引膨胀最后编辑时间:2022年1月23日00:07:27通常是因为数据乱序写入导致的,索引页中的数据是有序的,而索引字段乱序写入,会导致索引频繁分裂,使得索引页并不是百分百填满,自然出现索引膨胀的情况。示例:先创建索引,在乱序写入数据create table t(id int);create index idx_t on t using btree(id);insert into t select random()*1000000 from generate_seri原创 2022-01-23 06:00:00 · 929 阅读 · 0 评论 -
PostgreSQL分区表
PostgreSQL分区表PG版本:11最后编辑时间:2022年1月23日00:10:511)创建父表2)创建分区3)在分区上创建相应的索引postgres@postgres=>create table log_par (id serial,user_id int4,create_time timestamp(0) without time zone)partition by range(create_time);CREATE TABLEpostgres@postgres=>原创 2022-01-23 06:00:00 · 538 阅读 · 0 评论 -
PostgreSQL体系结构之物理结构
PostgreSQL体系结构之物理结构数据目录中子目录和文件的用途目录用途base包含每个数据库对应的子目录的子目录global包含集簇范围的表的子目录,比如pg_databasepg_commit_ts包含事务提交时间戳数据的子目录pg_xact包含事务提交状态数据的子目录pg_dynshmem包含被动态共享内存子系统所使用文件的子目录pg_logical包含用于逻辑复制的状态数据的子目录pg_multixcat包含多事务状态数据的原创 2021-12-14 22:00:00 · 283 阅读 · 0 评论 -
PG中的系统视图
PG中的系统视图pg提供了一系列内置的视图,系统视图提供了查询系统表的一些便利的访问方法。其他一些视图提供了访问内部服务器状态的方法。除了特别注明的,所有这里描述的视图都是只读的。postgres=# \dv pg* List of relations Schema | Name | Type | Owner ------------+-------------------------转载 2021-12-21 23:12:12 · 2922 阅读 · 0 评论 -
PostgreSQL 12系统表(1)pg_class
PostgreSQL系统表(1)pg_classpg_class记录表和几乎所有具有列或者像表的东西。这包括索引、序列、视图、物化视图、组合类型和TOAST表。pg_class中的一些逻辑标志被以一种懒惰的方式维护:在正确状态时它们被保证为真,但是当条件不再为真时它们并不会被立刻重置为假。名称类型引用描述oidoid行标识符relnamename表、索引、视图等的名字relnamespaceoidpg_namespace.oid包含该关系的名字空间原创 2021-12-02 23:28:20 · 2465 阅读 · 1 评论 -
PostgreSQL 12系统表(2)pg_tables
PostgreSQL 12系统表(2)pg_tablespg_tables提供对数据库中每个表的信息的访问名称类型引用描述schemanamenamepg_namespace.nspname包含表的模式名tablenamenamepg_class.relname表名tableownernamepg_authid.rolname表拥有者的名字tablespacenamepg_tablespace.spcname包含表空间的名字hasi原创 2021-12-02 23:29:07 · 2506 阅读 · 0 评论 -
PostgreSQL 12系统表(3)pg_tablespace
PostgreSQL 12系统表(3)pg_tablespacepg_tablespace存储关于可用表空间的信息。pg_tablespace在整个集簇的所有数据库之间共享;在每一个集簇中只有一个pg_tablespace的拷贝,而不是每个数据库一份名称类型引用描述oidoid行标识符spcnamename表空间名spcowneroidpg_authid.oid表空间的拥有者,通常是创建它的用户spcaclaclitem[]访问权限原创 2021-12-02 23:29:24 · 880 阅读 · 0 评论 -
PostgreSQL 12系统表(4)pg_constraint
PostgreSQL 12系统表(4)pg_constraintpg_constraint存储表上的检查、主键、唯一、外键和排他约束。非空约束不在这里,而是在pg_attribute目录中表示。名称类型引用描述oidoid行标识符connamename约束名字connamespaceoidpg_namespace.oid包含此约束的名字空间的oidcontypecharc=检查约束,f=外键约束,p=主键约束,u=唯一约束,t=约束触发器原创 2021-12-02 23:30:02 · 1655 阅读 · 0 评论 -
PostgreSQL 12系统表(8)pg_indexes
PostgreSQL 12系统表(8)pg_indexespg_indexes提供了数据库中每一个索引信息的访问。名称类型引用描述schemanamenamepg_namespace.nspname包含表和索引的模式名tablenamenamepg_class.relname此索引的基表的名字indexnamenamepg_class.relname索引名tablespacenamepg_tablespace.spcname包含索引的表空原创 2021-12-02 23:32:17 · 443 阅读 · 0 评论 -
PostgreSQL 12系统表(11)pg_user
PostgreSQL 12系统表(11)pg_userpg_user提供关于数据库用户的信息名字类型描述usenamename用户名usesysidoid用户的IDusecreatedbbool用户是否能创建数据库usesuperbool用户是否为超级用户usereplbool用户能否开启流复制以及将系统转入/转出备份模式。usebypassrlsbool用户能否绕过所有的行级安全性策略,详见 第5.8节。passwdt原创 2021-12-03 00:01:20 · 1614 阅读 · 0 评论 -
PostgreSQL 12系统表(5)pg_index
PostgreSQL 12系统表(5)pg_indexpg_index包含索引的部分信息。名称类型引用描述indexrelidoidpg_class.oid此索引的pg_class项的OIDindrelidoidpg_class.oid此索引的基表的pg_class项的OIDindnattsint2索引中的总列数(与pg_class.relnatts重复),这个数目包括键和被包括的属性indnkeyattsint2索引中键列的编号,不计入原创 2021-12-02 23:30:40 · 1056 阅读 · 0 评论 -
PostgreSQL 12系统表(7)pg_sequence
PostgreSQL 12系统表(7)pg_sequencepg_sequence包含有关序列的信息。名称类型引用描述seqrelidoidpg_class.oid这个序列的pg_class项的OIDseqtypidoidpg_type.oid序列的数据类型seqstartint8序列的起始值seqincrementint8序列的增量值seqmaxint8序列的最大值seqminint8序列的最小值seqca原创 2021-12-02 23:31:43 · 570 阅读 · 0 评论 -
PostgreSQL 12系统表(6)pg_namespace
PostgreSQL 12系统表(6)pg_namespacepg_namespace存储名字空间。名称类型引用描述oidoid行标识符nspnamename名字空间的名字nspowneroidpg_authid.oid名字空间的拥有者nspaclaclitem[]访问权限。...原创 2021-12-02 23:31:12 · 1061 阅读 · 0 评论 -
PostgreSQL 12系统表(9)pg_settings
PostgreSQL 12系统表(9)pg_settingspg_settings提供了对服务器上运行时参数的访问。名字类型描述nametext运行时配置参数名settingtext参数的当前值unittext参数的隐式单元categorytext参数的逻辑组short_desctext参数的简短描述extra_desctext附加的参数的详细描述contexttext要求设置此参数值的上下文vartypete原创 2021-12-02 23:32:53 · 1424 阅读 · 0 评论 -
PostgreSQL 12系统表(10)pg_locks
PostgreSQL 12系统表(10)pg_locks视图pg_locks提供了数据库服务器上活动进程中保持的锁的信息。名称类型引用描述locktypetext可锁对象的类型: relation, extend, page, tuple, transactionid, virtualxid, object, userlock或 advisorydatabaseoidpg_database.oid锁目标存在的数据库的OID,如果目标是一个共享对象则为0,如果目标原创 2021-12-02 23:33:46 · 559 阅读 · 0 评论