作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL(本章节)
Redis
Etcd
我们前面在介绍MySQL的的时候,用了4个小节来介绍数据库自带的4个库表,今天我们就用一个小节来介绍PostgreSQL的默认的模式及库表。
系统模式是 PostgreSQL 预定义的命名空间,用于隔离系统对象与用户自定义对象,避免命名冲突。
pg_catalog:最核心的系统模式,存储所有系统表、视图、数据类型等核心元数据,默认搜索路径包含此模式。information_schema:遵循 SQL 标准的模式,提供可读性更强的元数据视图,基于pg_catalog表构建,方便跨数据库兼容查询。pg_temp_xx(临时模式):每个会话独有的临时模式,存储临时表和临时函数,会话结束后自动清理。pg_toast:用于存储大对象(TOAST,The Oversized-Attribute Storage Technique),自动处理超过页大小的字段数据。
search_path参数控制模式的搜索顺序,避免访问系统对象时需显式指定模式名。
注意:这里的默认模式都是基于某个具体的库,当然里面有些数据是全局的。
系统表是存储数据库自身元数据的特殊表,记录数据库、表、列、索引、用户等所有对象的信息,PostgreSQL 启动和运行时依赖这些表的数据。
pg_index(索引定义)
pg_toast_xxxx(大对象存储表)
pg_user(数据库用户)
pg_roles(角色信息)
pg_permissions(权限配置)
pg_type(数据类型定义)
pg_constraint(表约束信息)普通用户可查询系统表(如通过select * from pg_tables查看所有表),但修改系统表需超级用户权限,且直接修改可能导致数据库崩溃,不建议手动操作。
三、系统表与系统模式的关系
pg_catalog)。information_schema的视information_schema.tables)或直接查询pg_catalog的系统表,前者更易读,后者信息更完整。