postgres--系统视图,表

pg_stat_all_tables

累积统计系统-监控数据库活动

pg_stat_all_tables是一个系统视图,它为当前数据库中的每个表(包括TOAST表)提供一行数据。显示了关于特定表的访问统计信息,比如访问次数等。pg_stat_user_tables和pg_stat_sys_tables这两个视图包含了与pg_stat_all_tables相同的信息pg_stat_user_tables仅显示用户创建的表的统计信息,而pg_stat_sys_tables仅显示系统表的统计信息。

sql 复制代码
relid oid: 表的唯一标识符(OID)。

schemaname name: 表所属的模式(schema)的名称。

relname name: 表的名称。

seq_scan bigint: 在此表上启动的顺序扫描次数。

last_seq_scan timestamp with time zone: 基于最近的事务停止时间,最后一次在此表上进行的顺序扫描的时间。

seq_tup_read bigint: 通过顺序扫描获取的行数。

idx_scan bigint: 在此表上启动的索引扫描次数。

last_idx_scan timestamp with time zone: 基于最近的事务停止时间,最后一次在此表上进行的索引扫描的时间。

idx_tup_fetch bigint: 通过索引扫描获取的行数。

n_tup_ins bigint: 插入的总行数。

n_tup_upd bigint: 更新的总行数。包括在n_tup_hot_upd和n_tup_newpage_upd中计数的行更新,以及剩余的非HOT更新。

n_tup_del bigint: 删除的总行数。

n_tup_hot_upd bigint: HOT更新的行数。这些更新不需要在索引中创建后继版本。

n_tup_newpage_upd bigint: 行更新的数量,其中后继版本被放置到新的堆页面上,留下带有指向不同堆页面的t_ctid字段的原始版本。这些总是非HOT更新。

n_live_tup bigint: 估计的存活行数。

n_dead_tup bigint: 估计的死亡行数。

n_mod_since_analyze bigint: 自上次分析此表以来估计的修改行数。

n_ins_since_vacuum bigint: 自上次对此表进行清理(vacuum)以来估计的插入行数。

last_vacuum timestamp with time zone: 手动清理(不包括VACUUM FULL)此表的最后时间。

last_autovacuum timestamp with time zone: 自动清理守护进程清理此表的最后时间。

last_analyze timestamp with time zone: 手动分析此表的最后时间。

last_autoanalyze timestamp with time zone: 自动分析守护进程分析此表的最后时间。

vacuum_count bigint: 手动清理(不包括VACUUM FULL)此表的次数。

autovacuum_count bigint: 自动清理守护进程清理此表的次数。

analyze_count bigint: 手动分析此表的次数。

autoanalyze_count bigint: 自动分析守护进程分析此表的次数。

这些统计信息可以帮助数据库管理员了解表的使用情况,优化查询性能,以及计划维护任务,如清理和分析。

TOAST 表

TOAST(The Oversized-Attribute Storage Technique)是 PostgreSQL 中的一种机制,用于处理大字段(如大文本或大二进制数据)的存储,以提高性能并优化存储空间。

  1. TOAST 的特点:
  • 存储超大字段:当某个列的值超过一定大小(通常为 2KB),PostgreSQL 会自动将其存储到一个 TOAST 表中。
    简化主表:大字段被移动到 TOAST 表中,主表只存储一个指向 TOAST 数据的指针,从而减小主表的大小,提高查询性能。
  • 压缩和分块:TOAST 支持对存储的数据进行压缩,进一步减少占用的存储空间,并可以将大字段分块存储,以便更高效地管理。
  1. TOAST 表的使用情况:

    适用于大文本字段(如 TEXT 或 BYTEA 类型)。

    在查询时,PostgreSQL 会自动处理 TOAST 表的读取和写入,用户无需显式管理。

  2. 查询 TOAST 表:

    要查看某个表的 TOAST 表,您可以使用以下 SQL 查询:

sql 复制代码
SELECT relname FROM pg_class WHERE relkind = 't';

结论:

TOAST 机制使 PostgreSQL 能够高效地处理大字段,优化存储和性能,确保在处理大型数据时不会影响整体数据库性能。

相关推荐
桀桀桀桀桀桀12 分钟前
数据库中的用户管理和权限管理
数据库·mysql
景天科技苑29 分钟前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
wclass-zhengge1 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
superman超哥1 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452001 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
颜淡慕潇1 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
engchina2 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina2 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生2 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
威哥爱编程2 小时前
SQL Server 数据太多如何优化
数据库·sql·sqlserver