2023年10月29日

PostgreSQL: PostgreSQL 配置信息查看修改

文章目录) 通过配置文件 通过SQL命令 查看配置SQL命令 修改配置SQL命令 通过shell命令 通过配置文件 postgresql配置文件在$PGDATA 数据目录下,配置文件路径: /usr/local/pgsql/data/postgresql.conf /usr/local/pgsql/data/postgresql.auto.conf 服务器启动时默认读取的配置文件为 postgresql.conf。 主服务进程接收到SIGHUP信号后会重新读取配置文件。可以通过命令pg_ctl reload 或者 SQL pg_reload_conf()触发信息。 主服务进程会广播信号给所有当前运行的服务进程中。所以存在的会话也会采用新的值。 打开postgresql.conf修改配置min_wal_size = 100MB并执行如下命令 zhangli…
2023年10月28日

PostgreSQL: PostgreSQL 常用命令速查

文章目录 连接服务器 查看帮助 查看连接 查看版本 配置参数 退出客户端 角色、用户和组 创建角色 查看角色 修改密码 设置密码失效时间 用户授权 查看权限 撤销权限 设置当前角色 删除角色 数据库和模式 查看数据库 创建数据库 修改数据库 删除数据库 查看模式 创建模式 修改模式 模式搜索路径 删除模式 管理数据表 创建表 查看所有表 查看表结构 增加字段 修改字段 重命名字段 删除字段 增加约束 删除约束 重命名表 删除表 索引 创建索引 查看索引 维护索引 删除索引 管理表空间 创建表空间 查看表空间 修改表空间 删除表空间 备份与还原 使用 pg_dump 执行逻辑备份 使用 psql/pg_restore 执行还原 备份/还原整个数据库集群 使用 COPY 导入/导出表数据 查询语句 单表查询 查询条件 排序显示 限定数量 分组操作 多表连接 子查询 集合运算 通用表表达式 DML 语句 插入数据 更新数据 删除数据 合并数据 事务控制 开始事务 提交事…
2023年10月27日

PostgreSQL: PostgreSQL 学习手册

目录 数据表 一、表的定义 二、系统字段 三、表的修改 四、权限 模式Schema 表的继承和分区 一、表的继承 二、分区表 常用数据类型 一、数值类型 二、字符类型 三、日期/时间类型 四、布尔类型 五、位串类型 六、数组 七、复合类型 函数和操作符 一 一、逻辑操作符 二、比较操作符 三、 数学函数和操作符 四、字符串函数和操作符 五、位串函数和操作符 函数和操作符 二 六、模式匹配 七、数据类型格式化函数 八、时间/日期函数和操作符 函数和操作符 三 九、序列操作函数 十、条件表达式 十一、数组函数和操作符 十二、系统信息函数 十三、系统管理函数 索引 一、索引的类型 二、复合索引 三、组合多个索引 四、唯一索引 五、表达式索引 六、部分索引 七、检查索引的使用 事物隔离 性能提升技巧 一、使用EXPLAIN 二、批量数据插入 服务器配置 一、服务器进程的启动和关闭 二、服务器配置 三、内存相关的参数配置 角色…
2023年10月27日

PostgreSQL: PostgreSQL 主要参数配置整理

一、 查看参数设置 show 参数名 select * from pg_settings where name='参数名'; 查看 postgresql.conf文件 二、 参数是否可修改 pg中主要可优化参数都位于postgresql.conf文件中,其中参数是否可修改可通过pg_settings的context字段查询。 postgres=# select distinct context from pg_settings; context ------------------- postmaster superuser-backend user internal backend sighup superuser (7 rows) postgres=# select name,context from pg_settings limit 5; name | context -------…
2023年10月26日

PostgreSQL: PostgreSQL 常用命令速查表

目录 连接服务器 角色、用户和组 数据库和模式 管理数据表 管理表空间 备份与还原 查询语句 复杂查询 DML语句 事务控制 视图 存储过程/函数 触发器 PDF文件下载:PostgreSQL常用命令速查表 连接服务器 psql -h hostname -p port -U username dbname postgres=# \? [ topic ] --获取 psql 工具帮助 postgres=# \h command; --获取 SQL 命令帮助 postgres=# \conninfo --显示当前连接信息 postgres=# \l[+] --列出所有的数据库 postgres=# \q --退出 psql 客户端 SELECT version(); --查看服务器版本 SHOW { ALL | name } --查看运行时参数 SET [ SESSION | LOCAL ] name TO { value | 'value' | DEFA…
2023年10月26日

PostgreSQL: PostgreSQL面试题集锦 学习与回答

以下题目来自: PostgreSQL面试题集锦 1. MVCC 实现机制以及和Oracle的差异 MVCC: 多版本并发控制,核心作用:使得读写操作不相互阻塞,提升并发性能。 实现原理:通常有2种实现方法: 写新数据时,把旧数据存入其他位置(如oracle的回滚段、sqlserver的tempdb)。当读数据时,读的是快照的旧数据。 写新数据时,旧数据不删除,直接插入新数据。以pg为代表,在元组头中引入xmin,xmax,cid,ctid,t_infomask几个字段,并结合commitlog,snapshot来进行可见性判断。 以pg为例: 插入数据:xmin为执行插入的事务号,xmax为0 删除数据:xmin不变,xmax为执行删除的事务号 更新数据:相当于删除+插入 同一事务执行多个DML语句,cid会递增,表示执行了几条命令 与Or…
2023年10月26日

PostgreSQL: PostgreSQL VACUUM 深入浅出

目录 PostgreSQL VACUUM 深入浅出 (一) PostgreSQL VACUUM 深入浅出 (二) PostgreSQL VACUUM 深入浅出 (三) PostgreSQL VACUUM 深入浅出 (四) PostgreSQL VACUUM 深入浅出 (五) PostgreSQL VACUUM 深入浅出 (一) 目录导航 前言 测试环境准备 PostgreSQL 为什么需要做 VACUUM 前言 VACUUM 是 PostgreSQL MVCC (Multiversion concurrency control) 实现的核心机制之一,是 PostgreSQL 正常运行的重要保证。本文将通过实例演示 PostgreSQL 为什么需要做 VACUUM,以及一步一步精准触发 AUTOVACUUM, 到 VACUUM 优化实战,深入浅出,一看就懂。 测试环境准备 以下测试是在 PostgreSQL 11 中…
2023年10月26日

PostgreSQL: PostgreSQL 数据库导入导出

目录导航 前言 pg_dump 常用参数 pg_dump 常用示例 pg_dump 工具参数 pg_dumpall pg_dumpall 工具参数 pg_restore 实例 pg_restore 数据导入工具 前言 PostgreSQL 使用 pg_dump 和 pg_dumpall 进行数据库的逻辑备份,使用 pg_restore 导入数据,pg_dumpall 是对整个数据库集群进行备份,pg_dump 可以选择一个数据库或者部分表进行备份。 关于 pg_dump: pg_dump 将表结构及数据以 SQL 语句的形式导出到 sql 文件或其他格式文件,恢复数据时,将导出的文件作为输入,执行其中的 SQL 语句,即可恢复数据。 pg_dump 能够对正在使用的 PostgreSQL 数据库进行备份,并且不影响正常业务的读写。 pg_dump 是一个客户端工具,可以远程或本地导出逻辑数据…
2023年10月26日

PostgreSQL: PostgreSQL 查看服务器版本的几种方法

目录 方法一:SELECT version() 方法二:SHOW server_version 方法三:命令行工具 本文介绍一下查看 PostgreSQL 服务器版本的几种方法。 方法一:SELECT version() 如果已经连接到 PostgreSQL 服务器,可以执行以下查询语句获取服务器版本信息: SELECT version(); 以下是一个返回结果的示例: version ------------------------------------------------------------ PostgreSQL 14.1, compiled by Visual C++ build 1914, 64-bit (1 row) 方法二:SHOW server_version 如果只需要获取简单的服务器版本号,可以利用配置选项 server_version: SHOW s…
2023年10月26日

PostgreSQL: PostgreSQL 复制表的 5 种方式

目录 CREATE TABLE AS SELECT 语句 CREATE TABLE LIKE 语句 CREATE TABLE AS TABLE 语句 SELECT INTO 语句 CREATE TABLE INHERITS 语句 PostgreSQL 提供了多种不同的复制表的方法,它们的差异在于是否需要复制表结构或者数据。 CREATE TABLE AS SELECT 语句 CREATE TABLE AS SELECT 语句可以用于复制表结构和数据,但是不会复制索引。 我们可以使用以下语句基于 employee 复制一个新表 emp2,包括表中的数据: CREATE TABLE emp2 AS SELECT * FROM employee; 如果只想要复制表结构,不复制数据,可以增加 WITH NO DATA 子句: CREATE TABLE emp2 AS SELECT * FROM employee WITH NO DATA;…