news 2026/4/16 14:06:03

2.pg工具介绍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2.pg工具介绍

目录

  • psql 介绍
    • 特点
    • psql 的常用命令
      • "h" 命令
      • "d" 命令
        • 案例
        • 匹配不同对象类型的 "d" 命令
        • 其他相关命令
      • 指定客户端字符集的命令
      • 格式化输出的 \pset 命令
      • "\x" 命令
      • "\i" 命令
      • 输出信息的 "echo" 命令
      • 命令 "e"
      • 其他命令
  • clusterdb – cluster a PostgreSQL database
    • 用途
    • 案例
    • 查询聚簇索引表
    • 缺点
  • pgbench 简单介绍
  • 其他工具介绍

psql 介绍

psql 是 PostgreSQL 中的一个命令行交互式客户端工具,类似于 MySQL 中的 mysql client 以及 Oracle 中的 sqlplus。

特点

  • 使用起来简单,支持很多简便命令。
  • 单击 Tab 键自动补全的强大功能。
  • 对于初学者来说,也可以使用 PostgreSQL 中图形化客户端工具(如 pgAdmin)来操作 PostgreSQL 数据库。

psql 的常用命令

psql -h查看如何连接 pg-server。

“h” 命令

使用 psql 工具需要记住的第一个命令是\h,该命令用于查询 SQL 语句的语法。使用\h命令可以查看各种 SQL 语句的语法,非常方便,比如忘记如何创建 user。


“d” 命令

该命令将显示每个匹配 “pattern”(表、视图、索引、序列)的信息,包括对象中所有的列、各列的数据类型、表空间(如果不是默认的)和所有特殊属性(诸如 “NOT NULL” 或默认值等)等。

案例
  • \d命令后什么都不带,将列出当前数据库中的所有表。
  • \d命令后面跟一个表名,表示显示这个表的结构定义。
  • \d命令也可以用于显示索引信息。
  • \d命令后面的表名或索引名中也可以使用通配符如*?等。
  • 使用\d+命令可以显示比\d命令的执行结果更详细的信息,除了前面介绍的信息,还会显示所有与表的列关联的注释,以及表中出现的 OID。
匹配不同对象类型的 “d” 命令
  • 如果只想显示匹配的表,可以使用\dt命令。
  • 如果只想显示索引,可以使用\di命令。
  • 如果只想显示序列,可以使用\ds命令。
  • 如果只想显示视图,可以使用\dv命令。
  • 如果想显示函数,可以使用\df命令。
其他相关命令
  • \timing显示执行 SQL 语句的时间。
  • 要想列出数据库中的所有角色或用户,可以使用\du\dg命令。

指定客户端字符集的命令

使用\encoding utf8;命令设置客户端的字符编码为 “utf8”。


格式化输出的 \pset 命令

psql 中执行 SQL 语句后输出的内容默认只有内边框。

  • \pset border 2像 MySQL 一样有内外边框。
  • \pset border 0可以不用边框展示。
  • \o file可以把查询导出到文件。

示例:

\o111.txtselect*fromtttorderbyname;

“\x” 命令

使用\x命令可以把按行展示的数据变成按列展示。


“\i” 命令

用于执行存储在外部文件中的 SQL 语句或命令,等同于psql -x -f getrunsql


输出信息的 “echo” 命令

\echo命令用于输出一行信息。

示例:

osdba=# \echo hello world hello world

命令 “e”

可以用于编辑文件,也可用于编辑系统中已存在的函数或视图定义。编辑完成后退出编辑器并回到 psql 中时会立即执行该命令。


其他命令

\?命令来显示帮助。


clusterdb – cluster a PostgreSQL database

CLUSTER指示 PostgreSQL 基于index_name指定的索引聚簇由table_name指定的表。这个索引必须是表table_name上已定义的索引。

用途

如果对某些特定数据的访问较多,而且有一个索引将这些数据分组,那么使用CLUSTER会非常有益处。如果从一个表中请求一定索引范围的值,或者是一个索引值对应多行,CLUSTER 也会有助于应用,因为如果索引标识出第一匹配行所在的存储页,所有其它行也可能已经在同一个存储页里了,这样便节省了磁盘访问的时间,加速了查询。

案例

  1. 按照索引employees_ind的顺序对 employees 表进行聚簇:

    CLUSTER employeesUSINGemployees_ind;
  2. 使用以前用过的同一个索引对 employees 表进行聚簇:

    CLUSTER employees;
  3. 对以前聚簇过的所有表重新聚簇:

    CLUSTER;

查询聚簇索引表

SELECTindexname,indexedFROMpg_indexesWHEREtablename='ttt';

缺点

CLUSTER 在聚簇的处理过程中,系统先创建一个按照索引顺序建立的表的临时拷贝。同时也建立表上的每个索引的临时拷贝。因此,需要磁盘上有足够的剩余空间,至少是表大小和索引大小的和。


pgbench 简单介绍

pgbench 是 PostgreSQL 附带的一个性能测试工具,它执行一系列相同的 SQL 语句,然后进行一些事务操作,最终计算平均事务,用来衡量数据库性能。同时该工具也支持用户自定义测试脚本。

以下是该工具的一些参数与含义:

  • -i测试表初始化
  • -sscale,比例因子,该比例因子乘上 10,000,000 为 pgbench_accounts 表中数据数
  • -c客户端连接数
  • -jpgbench 运行客户端的线程数
  • -t每个客户端执行的事务数,默认为 10,该参数与-T互斥
  • -T在一定时间内执行测试,度量可执行的事务数,而不是固定事务数,该参数与-t互斥
  • -f采用自定义脚本进行测试

示例测试命令:

pgbench -h10.172.172.172 -U postgres -s500-p5432-f mytest -t10-c5000-j5000test

其他工具介绍

  • pg_amcheck- checks for corruption in one or more PostgreSQL databases
  • pg_basebackup- take a base backup of a PostgreSQL cluster
  • pgbench- run a benchmark test on PostgreSQL
  • pg_config- retrieve information about the installed version of PostgreSQL
  • pg_dump- extract a PostgreSQL database into a script file or other archive
  • pg_dumpall- extract a PostgreSQL database cluster into a script file
  • pg_isready- check the connection status of a PostgreSQL server
  • pg_receiveval- stream write-ahead logs from a PostgreSQL server
  • pg_recvlogical- control PostgreSQL logical decoding streams
  • pg_restore- restore a PostgreSQL database from an archive file created by
  • pg_verifybackup- verify the integrity of a base backup of a PostgreSQL cluster
  • psql- PostgreSQL interactive terminal
  • reindexdb- reindex a PostgreSQL database
  • vacuumdb- garbage-collect and analyze a PostgreSQL database

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 11:37:20

【SQL】SQL 语句的解析顺序:理解查询执行的逻辑

文章目录一、SQL 解析顺序:为什么不是按书写顺序执行二、FROM 子句:确定数据源和表连接三、WHERE 子句:过滤行数据四、GROUP BY 子句:数据分组五、HAVING 子句:过滤分组六、SELECT 子句:处理表达式和去重七…

作者头像 李华
网站建设 2026/4/8 0:02:43

道岔故障智能诊断与预警系统研究

目录 第一章 绪论 1.1 研究背景与意义 1.2 国内外研究现状 1.2.1 国外研究现状 1.2.2 国内研究现状 1.3 主要研究内容与技术路线 第二章 道岔故障机理分析 2.1 道岔结构与工作原理 2.2 典型故障模式分析 2.2.1 机械故障 2.2.2 电气故障 2.2.3 环境因素故障 2.3 故障…

作者头像 李华
网站建设 2026/4/16 11:00:09

短视频直播平台搭建必备:直播美颜SDK与动态贴纸开发/接入详解

在短视频和直播行业的快速发展中,如何让平台更具吸引力、提升用户互动体验成为了开发者和运营者必须关注的核心问题。尤其是对直播平台和短视频平台来说,直播美颜SDK与动态贴纸SDK的引入,已经成为提升用户粘性、增强平台活跃度的重要手段。本…

作者头像 李华
网站建设 2026/4/16 10:44:00

Vue+Laravel全栈开发实战指南

环境配置确保已安装Node.js(用于Vue开发)和Composer(用于Laravel依赖管理)。Laravel项目可通过以下命令创建:composer create-project laravel/laravel project-name前端项目初始化在Laravel项目根目录下初始化Vue2项目…

作者头像 李华
网站建设 2026/4/16 4:08:39

MySQL中如何进行SQL调优?

SQL调优的核心思路是减少磁盘I/O和避免无效计算。 主要就是先通过MySQL的慢查询日志定位慢SQL,再利用EXPLAIN分析执行计划,最后再进行针对性优化。 优化的手段主要有这几大类,分别是索引层面的优化,SQL写法层面的优化以及架构层…

作者头像 李华
网站建设 2026/4/6 0:20:00

C语言输入与输出(I/O)全面解析

C语言输入与输出(I/O)全面解析 引言 C语言作为一种历史悠久、功能强大的编程语言,其输入与输出(I/O)功能是编程中不可或缺的部分。本文将全面解析C语言的输入与输出,包括标准输入输出函数、文件操作、格式化输出等,帮助读者深入理解C语言I/O机制。 标准输入输出函数 …

作者头像 李华