首页 > 数据库 >【PostageSQL】【元信息】PostageSQL 系统目录

【PostageSQL】【元信息】PostageSQL 系统目录

时间:2024-02-23 09:01:44浏览次数:30  
标签:information PostgreSQL 数据库 信息 PostageSQL pg 系统目录 schema

1  前言

可能大家平时会查看数据库中的一些原始信息,比如数据库有哪些表,表有哪些字段呀,都是什么类型呀,甚至每个表所占的空间大小,索引的空间大小、索引访问的次数呀等等,其实 PgSQL 都有对应的系统目录给我们,这节我们就来看看。

2  层次

在看元信息前,我们先了解一下数据的一个层次:

可以看到,我们的表位于第四层,哪个服务器的哪个数据库,数据库可能有的会根据不同的租户划分不同的 schema 下(如果没有指定的话,那么默认表都会创建到 public 下),最后到我们的表。当我们查询或者操作表的时候,shcmea.表名(没有指定 schema 则默认操作 public)。

为什么要说一下这个层次呢?主要是想到 schema 这个东西,因为我看元信息的时候,发现有 pg_tablespg_attribute 能查表信息、表的字段信息,而 information_schema 也能查到,那功能是不是重复了呢?

在某种程度上,information_schema 和 PostgreSQL 的系统目录(如 pg_tablespg_classpg_attribute 等)确实提供了类似的功能,即都可以查询数据库的元数据信息。但它们之间存在一些重要的区别:

  1. 标准化:information_schema 是 SQL 标准的一部分,旨在提供一个标准化的接口来访问数据库的元数据。这意味着,无论你使用的是 PostgreSQL、MySQL、SQL Server 还是其他支持该标准的数据库,你都可以使用相同的查询来获取类似的信息。而 PostgreSQL 的系统目录则是特定于实现的,它们的结构和命名可能会在不同的数据库系统中有所不同。

  2. 范围和详细程度:information_schema 通常提供用户级别的视图,这些视图隐藏了底层实现的复杂性,并以更易于理解和使用的方式呈现信息。相比之下,PostgreSQL 的系统目录提供了更详细和更低级别的信息,包括内部数据结构、存储参数、访问权限等。这些额外的信息对于数据库管理员和需要进行高级调优或故障排除的用户来说是非常有用的。

  3. 性能:由于 information_schema 视图是基于 PostgreSQL 系统目录构建的,因此在某些情况下,直接查询系统目录可能会更快,尤其是当你需要访问大量数据或进行复杂的查询时。然而,对于大多数常规用途来说,information_schema 的性能已经足够好,而且它的易用性和标准化优势通常更加重要。

  4. 兼容性:如果你的应用程序或查询需要在多个数据库系统上运行,并且你希望保持代码的一致性,那么使用 information_schema 可能是更好的选择。这样,你可以编写一次代码,并在多个系统上重复使用它,而无需担心特定于实现的差异。

综上所述,虽然 information_schema 和 PostgreSQL 的系统目录在某些方面存在重叠,但它们各自具有独特的优势和用途。你可以根据你的具体需求和上下文来选择使用哪一个(来自文心一言的解答)。

另外查看数据库的 schema:

SELECT schema_name  
FROM information_schema.schemata;

这将列出当前数据库中所有的 schemas,包括预定义的和用户定义的。如果你有足够的权限,你还可以使用 CREATE SCHEMA 语句来创建新的 schemas,并使用 DROP SCHEMA 语句来删除它们(但要小心,因为这也会删除 schema 下的所有对象,除非使用 CASCADE 选项)。

在 PostgreSQL 中,除了 information_schema 之外,还有其他几个预定义的 schemas(模式)和用户定义的 schemas。以下是一些常见的 schemas:

  1. public: 这是默认的 schema,当你创建一个新的对象(如表、视图等)而没有指定 schema 时,它会被创建在 public schema 下。

  2. pg_catalog: 这个 schema 包含了系统表、系统视图和系统函数,它们存储了 PostgreSQL 数据库的元数据和维护信息。通常,用户不需要直接查询这些表,但是它们对于数据库管理员和开发者在需要深入了解系统内部运作时是非常有用的。

  3. pg_toast: 这个 schema 用于存储大型对象的“外部”存储。当你使用大型对象(如 BLOBs)时,PostgreSQL 会将部分数据存储在这个 schema 下的表中。这是为了优化存储和检索大型数据。

  4. 用户定义的 schemas: 除了预定义的 schemas,用户还可以创建自己的 schemas 来组织数据库对象。这有助于在单个数据库中实现多租户环境、分离不同应用程序的数据或实现其他逻辑分组。

3  系统目录

官方文档:https://www.postgresql.org/docs/14/catalogs.html

中文文档:http://www.postgres.cn/docs/14/catalogs-overview.html

可以看到大概有100个左右的系统目录,我们可以看到常见的:

(1)pg_class:记录表和所有具有列或者像表的东西。这包括索引(但还要参见pg_index)、序列(但还要参见pg_sequence)、视图、物化视图、组合类型等。

(2)pg_attribute:存储所有表(包括系统表,如pg_class)的字段信息。数据库中的每个表的每个字段在pg_attribute表中都有一行记录。

(3)pg_index:存储关于索引的一部分信息。

(4)pg_constraint:存储表对象的检查约束、主键、唯一约束和外键约束。

(5)pg_tablespace:存储表空间的信息。

(7)pg_database:存储数据库的信息。和大多数系统表不同的是,在一个集群里该表是所有数据库共享的,即每个集群只有一份pg_database拷贝,而不是每个数据库一份。

另外详细的大家可以看文档哈,关于表空间、行数、索引大小等的统计,可以参考我的另一篇:https://www.cnblogs.com/kukuxjx/p/17328340.html

4  小结

好啦,本节就看到这里哈。

标签:information,PostgreSQL,数据库,信息,PostageSQL,pg,系统目录,schema
From: https://www.cnblogs.com/kukuxjx/p/18028544

相关文章

  • 第三章 信息方法 笔记
    在第三章中,我对信息方法有了更深入的了解。本节详细介绍了信息方法的基本概念、特点和应用领域,让我对如何在实际中运用信息方法有了更清晰的认识。首先,明确了信息方法的定义和特点。信息方法是一种特殊的系统方法,它强调利用信息来理解和解决问题。这种方法认为,信息是系统的重要组......
  • 引入JavaScript自定义提示信息(账户密码不为空,必须勾选用户协议)
     当不输入用户或密码就登录时不勾选用户协议就登录时form表单的修改,引入了onsubmit控件,提交表单时,调用validateForm函数<formaction="/home"method="post"onsubmit="returnvalidateForm()">validateForm函数内容functionvalidateForm(){//验证用户名和密......
  • 有效预防重要信息通过U盘、硬盘泄露的方法
    在这个信息高度交流的时代,数据安全问题日益凸显。数据的存储、传输和利用涉及各个层面的信息消费,牵一发而动全身。U盘、硬盘等设备因其便携性和大容量,成为信息传输的主要渠道。然而,如果不加以合理控制和管理,也可能成为重要信息泄露的风险点。要有效预防重要信息的泄露,需要全面且......
  • 信息通讯安规考试gjdw
     一、单选题 (共30题)1.电力通信网管切换试验前,应做好数据(      )。  A.同步  B.上传  C.下载  D.删除答案:A2.作业人员应具备必要的电力通信专业知识,掌握电力通信专业工作技能,且按工作性质,熟悉本规程的相关部分,并经(      )合格。  A.培训  B.口试......
  • Linux查看硬件信息
    Linux查看硬件信息查看服务器型号、序列号dmidecode|grep"SystemInformation"-A9|egrep"Manufacturer|Product|Serial"查看主板型号dmidecode|grep-A16"SystemInformation$"查看BIOS信息dmidecode-tbios查看内存槽及内存条dmidecode-tmemory查看网卡信......
  • 基于双目RGB图像和图像深度信息的三维室内场景建模matlab仿真
    1.算法运行效果图预览   2.算法运行软件版本matlab2022a 3.算法理论概述        三维室内场景建模在计算机视觉、机器人导航、虚拟现实等领域有广泛应用。传统的建模方法通常基于激光扫描仪或深度相机,但这些设备价格昂贵且不易普及。基于双目RGB图像和图像......
  • 报错信息
     (base)➜DeepLSDgit:(main)✗pipinstall-eline_refinementLookinginindexes:https://pypi.tuna.tsinghua.edu.cn/simpleObtainingfile:///home/featurize/DeepLSD/line_refinementPreparingmetadata(setup.py)...doneInstallingcollectedpackages:line-......
  • ETL快速拉取物流信息
    我国作为世界第一的物流大国,但是在目前的物流信息系统还存在着几大的痛点。主要包括以下几个方面:数据孤岛:有些物流企业各个部门之间的数据标准不一致,难以实现数据共享和协同,容易导致信息孤岛。操作繁琐:物流信息系统的操作相对繁琐,需要大量的人力资源和时间投入,容易导致员工疲劳......
  • 关于信息学奥赛中的一些做题思路
    观前须知鼠鼠我啊,非常非常的菜呢如有错误,感谢各位大佬指出本文只包含笔者在比赛过程中总结的一些比赛思路不全面,也不一定正确请多多包涵喵~本文持续更新正片暴力(枚举暴搜模拟)暴搜剪枝出奇迹乱搞做法出奇迹通过数据规模猜测算法复杂度进而推出算法通过归纳总结性质对......
  • fastDFS:fdfs_monitor:last_heart_beat_time 字段的信息来自最后访问的tracker server的
    命令:fdfs_monitor/etc/fdfs/client.conf2>/dev/null|grep-vE'succ|out_'|grep-E'tracker|Stora|Group|heart|sync|time|id|ip|upload'结果: 说明:    last_heart_beat_time的指的是storageserver与trackerserver心跳通讯,收到的trackerserver的心......