展开全部

主编推荐语

一本值得存放于身旁的PostgreSQL参考书,基于最新的PostgreSQL 10版本。

内容简介

本书由数据库专业开发人员撰写,系统介绍PostgreSQL10的丰富特性,及其在生产实践运维中的技巧,全书分为基础篇、核心篇、进阶篇,共18章。

基础篇包括第1~4章,主要介绍PostgreSQL基础知识,例如安装与配置、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括第5-9章,主要介绍PostgreSQL核心内容,例如体系结构、并行查询、事务与并发控制、分区表等;进阶篇包括第10~18章,主要介绍PostgreSQL高级内容,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、扩展模块、Oracle数据库迁移PostgreSQL实战、PostGIS等。

目录

  • 版权信息
  • 序言
  • 前言
  • 本书主要内容
  • 本书特点
  • 读者对象
  • 勘误和支持
  • 致谢
  • 基础篇
  • 第1章 安装与配置基础
  • 1.1 初识PostgreSQL
  • 1.1.1 PostgreSQL的特点
  • 1.1.2 许可
  • 1.1.3 邮件列表和讨论区
  • 1.2 安装PostgreSQL
  • 1.2.1 通过yum源安装
  • 1.2.2 通过源码编译安装
  • 1.2.3 设置一个软链接
  • 1.3 客户端程序和服务器程序
  • 1.3.1 客户端程序
  • 1.3.2 服务器程序
  • 1.4 创建数据库实例
  • 1.4.1 创建操作系统用户
  • 1.4.2 创建数据目录
  • 1.4.3 初始化数据目录
  • 1.5 启动和停止数据库服务器
  • 1.5.1 使用service方式
  • 1.5.2 使用pg_ctl进行管理
  • 1.5.3 其他启动和关闭数据库服务器的方式
  • 1.5.4 配置开机启动
  • 1.6 数据库配置基础
  • 1.6.1 配置文件的位置
  • 1.6.2 pg_hba.conf
  • 1.6.3 postgresql.conf
  • 1.6.4 允许远程访问数据库
  • 1.7 本章小结
  • 第2章 客户端工具
  • 2.1 pgAdmin 4简介
  • 2.1.1 pgAdmin 4安装
  • 2.1.2 pgAdmin 4使用
  • 2.2 psql功能及应用
  • 2.2.1 使用psql连接数据库
  • 2.2.2 psql元命令介绍
  • 2.2.3 psql导入、导出表数据
  • 2.2.4 psql的语法和选项介绍
  • 2.2.5 psql执行sql脚本
  • 2.2.6 psql如何传递变量到SQL
  • 2.2.7 使用psql定制日常维护脚本
  • 2.2.8 psql亮点功能
  • 2.3 本章小结
  • 第3章 数据类型
  • 3.1 数字类型
  • 3.1.1 数字类型列表
  • 3.1.2 数字类型操作符和数学函数
  • 3.2 字符类型
  • 3.2.1 字符类型列表
  • 3.2.2 字符类型函数
  • 3.3 时间/日期类型
  • 3.3.1 时间/日期类型列表
  • 3.3.2 时间/日期类型操作符
  • 3.3.3 时间/日期类型常用函数
  • 3.4 布尔类型
  • 3.5 网络地址类型
  • 3.5.1 网络地址类型列表
  • 3.5.2 网络地址操作符
  • 3.5.3 网络地址函数
  • 3.6 数组类型
  • 3.6.1 数组类型定义
  • 3.6.2 数组类型值输入
  • 3.6.3 查询数组元素
  • 3.6.4 数组元素的追加、删除、更新
  • 3.6.5 数组操作符
  • 3.6.6 数组函数
  • 3.7 范围类型
  • 3.7.1 范围类型列表
  • 3.7.2 范围类型边界
  • 3.7.3 范围类型操作符
  • 3.7.4 范围类型函数
  • 3.7.5 给范围类型创建索引
  • 3.8 json/jsonb类型
  • 3.8.1 json类型简介
  • 3.8.2 查询json数据
  • 3.8.3 jsonb与json差异
  • 3.8.4 jsonb与json操作符
  • 3.8.5 jsonb与json函数
  • 3.8.6 jsonb键/值的追加、删除、更新
  • 3.9 数据类型转换
  • 3.9.1 通过格式化函数进行转换
  • 3.9.2 通过CAST函数进行转换
  • 3.9.3 通过::操作符进行转换
  • 3.10 本章小结
  • 第4章 SQL高级特性
  • 4.1 WITH查询
  • 4.1.1 复杂查询使用CTE
  • 4.1.2 递归查询使用CTE
  • 4.2 批量插入
  • 4.2.1 方式一:INSERT INTO...SELECT...
  • 4.2.2 方式二:INSERT INTO VALUES(),(),…()
  • 4.2.3 方式三:COPY或\COPY元命令
  • 4.3 RETURNING返回修改的数据
  • 4.3.1 RETURNING返回插入的数据
  • 4.3.2 RETURNING返回更新后数据
  • 4.3.3 RETURNING返回删除的数据
  • 4.4 UPSERT
  • 4.4.1 UPSERT场景演示
  • 4.4.2 UPSERT语法
  • 4.5 数据抽样
  • 4.5.1 SYSTEM抽样方式
  • 4.5.2 BERNOULLI抽样方式
  • 4.6 聚合函数
  • 4.6.1 string_agg函数
  • 4.6.2 array_agg函数
  • 4.7 窗口函数
  • 4.7.1 窗口函数语法
  • 4.7.2 avg()OVER()
  • 4.7.3 row_number()
  • 4.7.4 rank()
  • 4.7.5 dense_rank()
  • 4.7.6 lag()
  • 4.7.7 first_value()
  • 4.7.8 last_value()
  • 4.7.9 nth_value()
  • 4.7.10 窗口函数别名的使用
  • 4.8 本章小结
  • 核心篇
  • 第5章 体系结构
  • 5.1 逻辑和物理存储结构
  • 5.1.1 逻辑存储结构
  • 5.1.2 物理存储结构
  • 5.2 进程结构
  • 5.2.1 守护进程与服务进程
  • 5.2.2 辅助进程
  • 5.3 内存结构
  • 5.3.1 本地内存
  • 5.3.2 共享内存
  • 5.4 本章小结
  • 第6章 并行查询
  • 6.1 并行查询相关配置参数
  • 6.2 并行扫描
  • 6.2.1 并行顺序扫描
  • 6.2.2 并行索引扫描
  • 6.2.3 并行index-only扫描
  • 6.2.4 并行bitmap heap扫描
  • 6.3 并行聚合
  • 6.4 多表关联
  • 6.4.1 Nested loop多表关联
  • 6.4.2 Merge join多表关联
  • 6.4.3 Hash join多表关联
  • 6.5 本章小结
  • 第7章 事务与并发控制
  • 7.1 事务和并发控制的概念
  • 7.1.1 事务的基本概念和性质
  • 7.1.2 并发引发的现象
  • 7.1.3 ANSI SQL标准的事务隔离级别
  • 7.2 PostgreSQL的事务隔离级别
  • 7.2.1 查看和设置数据库的事务隔离级别
  • 7.2.2 修改全局的事务隔离级别
  • 7.2.3 查看当前会话的事务隔离级别
  • 7.2.4 设置当前会话的事务隔离级别
  • 7.2.5 设置当前事务的事务隔离级别
  • 7.3 PostgreSQL的并发控制
  • 7.3.1 基于锁的并发控制
  • 7.3.2 基于多版本的并发控制
  • 7.3.3 通过pageinspect观察MVCC
  • 7.3.4 使用pg_repack解决表膨胀问题
  • 7.3.5 支持事务的DDL
  • 7.4 本章小结
  • 第8章 分区表
  • 8.1 分区表的意义
  • 8.2 传统分区表
  • 8.2.1 继承表
  • 8.2.2 创建分区表
  • 8.2.3 使用分区表
  • 8.2.4 查询父表还是子表
  • 8.2.5 constraint_exclusion参数
  • 8.2.6 添加分区
  • 8.2.7 删除分区
  • 8.2.8 分区表相关查询
  • 8.2.9 性能测试
  • 8.2.10 传统分区表注意事项
  • 8.3 内置分区表
  • 8.3.1 创建分区表
  • 8.3.2 使用分区表
  • 8.3.3 内置分区表原理探索
  • 8.3.4 添加分区
  • 8.3.5 删除分区
  • 8.3.6 性能测试
  • 8.3.7 constraint_exclusion参数
  • 8.3.8 更新分区数据
  • 8.3.9 内置分区表注意事项
  • 8.4 本章小结
  • 第9章 PostgreSQL的NoSQL特性
  • 9.1 为jsonb类型创建索引
  • 9.2 json、jsonb读写性能测试
  • 9.2.1 创建json、jsonb测试表
  • 9.2.2 json、jsonb表写性能测试
  • 9.2.3 json、jsonb表读性能测试
  • 9.3 全文检索对json和jsonb数据类型的支持
  • 9.3.1 PostgreSQL全文检索简介
  • 9.3.2 json、jsonb全文检索实践
  • 9.4 本章小结
  • 进阶篇
  • 第10章 性能优化
  • 10.1 服务器硬件
  • 10.2 操作系统优化
  • 10.2.1 常用Linux性能工具
  • 10.2.2 Linux系统的I/O调度算法
  • 10.2.3 预读参数调整
  • 10.2.4 内存的优化
  • 10.3 数据库调优
  • 10.3.1 全局参数调整
  • 10.3.2 统计信息和查询计划
  • 10.3.3 索引管理与维护
  • 10.4 本章小结
  • 第11章 基准测试与pgbench
  • 11.1 关于基准测试
  • 11.1.1 基准测试的常见使用场景
  • 11.1.2 基准测试衡量指标
  • 11.1.3 基准测试的原则
  • 11.2 使用pgbench进行测试
  • 11.2.1 pgbench的测试结果报告
  • 11.2.2 通过内置脚本进行测试
  • 11.2.3 使用自定义脚本进行测试
  • 11.2.4 其他选项
  • 11.3 本章小结
  • 第12章 物理复制和逻辑复制
  • 12.1 异步流复制
  • 12.1.1 以拷贝数据文件方式部署流复制
  • 12.1.2 以pg_basebackup方式部署流复制
  • 12.1.3 查看流复制同步方式
  • 12.2 同步流复制
  • 12.2.1 synchronous_commit参数详解
  • 12.2.2 配置同步流复制
  • 12.2.3 同步流复制的典型“陷阱”
  • 12.3 单实例、异步流复制、同步流复制性能测试
  • 12.3.1 读性能测试
  • 12.3.2 写性能测试
  • 12.4 流复制监控
  • 12.4.1 pg_stat_replication
  • 12.4.2 监控主备延迟
  • 12.4.3 pg_stat_wal_receiver
  • 12.4.4 相关系统函数
  • 12.5 流复制主备切换
  • 12.5.1 判断主备角色的五种方法
  • 12.5.2 主备切换之文件触发方式
  • 12.5.3 主备切换之pg_ctl promote方式
  • 12.5.4 pg_rewind
  • 12.6 延迟备库
  • 12.6.1 延迟备库的意义
  • 12.6.2 延迟备库部署
  • 12.6.3 recovery_min_apply_delay参数对同步复制的影响
  • 12.7 同步复制优选提交
  • 12.7.1 synchronous_standby_names参数详解
  • 12.7.2 基于优先级的同步备库
  • 12.7.3 基于Quorum的同步备库
  • 12.8 级联复制
  • 12.8.1 级联复制物理架构
  • 12.8.2 级联复制部署
  • 12.9 流复制维护生产案例
  • 12.9.1 案例一:主库上创建表空间时备库宕机
  • 12.9.2 案例二:备库查询被中止
  • 12.9.3 案例三:主库上的WAL被覆盖导致备库不可用
  • 12.10 逻辑复制
  • 12.10.1 逻辑解析
  • 12.10.2 逻辑复制架构
  • 12.10.3 逻辑复制部署
  • 12.10.4 逻辑复制DML数据验证
  • 12.10.5 逻辑复制添加表、删除表
  • 12.10.6 逻辑复制启动、停止
  • 12.10.7 逻辑复制配置注意事项和限制
  • 12.10.8 逻辑复制延迟测试
  • 12.11 本章小结
  • 第13章 备份与恢复
  • 13.1 备份与恢复概述
  • 13.2 增量备份
  • 13.2.1 开启WAL归档
  • 13.2.2 创建基础备份
  • 13.3 指定时间和还原点的恢复
  • 13.3.1 恢复到最近时间点
  • 13.3.2 恢复到指定时间点
  • 13.3.3 恢复到指定还原点
  • 13.3.4 恢复到指定事务
  • 13.3.5 恢复到指定时间线
  • 13.4 SQL转储和文件系统级别的备份
  • 13.4.1 SQL转储
  • 13.4.2 文件系统级别的备份
  • 13.5 本章小结
  • 第14章 高可用
  • 14.1 Pgpool-II+异步流复制实现高可用
  • 14.1.1 pgpool部署架构图
  • 14.1.2 pgpool部署
  • 14.1.3 PCP管理接口配置
  • 14.1.4 pgpool方案高可用测试
  • 14.1.5 pgpool方案常见错误处理
  • 14.2 基于Keepalived+异步流复制实现高可用
  • 14.2.1 Keepalived+异步流复制部署架构图
  • 14.2.2 Keepalived+异步流复制高可用方案部署
  • 14.2.3 Keepalived配置
  • 14.2.4 Keepalived方案高可用测试
  • 14.3 本章小结
  • 第15章 版本升级
  • 15.1 版本介绍
  • 15.2 小版本升级
  • 15.3 大版本升级
  • 15.3.1 通过pg_dumpall进行大版本升级
  • 15.3.2 通过pg_upgrade进行大版本升级
  • 15.3.3 使用pglogical升级大版本
  • 15.4 本章小结
  • 第16章 扩展模块
  • 16.1 CREATE EXTENSION
  • 16.2 pg_stat_statements
  • 16.3 auto_explain
  • 16.4 pg_prewarm
  • 16.5 file_fdw
  • 16.5.1 SQL/MED简介
  • 16.5.2 file_fdw部署
  • 16.5.3 使用file_fdw分析数据库日志
  • 16.6 postgres_fdw
  • 16.6.1 postgres_fdw部署
  • 16.6.2 postgres_fdw外部表支持写操作
  • 16.6.3 postgres_fdw支持聚合函数下推
  • 16.7 Citus
  • 16.7.1 Citus特性
  • 16.7.2 Citus安装
  • 16.7.3 Citus管理
  • 16.7.4 创建分布表
  • 16.7.5 Citus参数配置
  • 16.7.6 Citus常用功能
  • 16.8 本章小结
  • 第17章 Oracle数据库迁移PostgreSQL实践
  • 17.1 项目准备
  • 17.2 数据库对象迁移
  • 17.3 应用代码改造
  • 17.4 数据迁移测试
  • 17.5 功能测试和性能测试
  • 17.6 生产割接
  • 17.7 oracle_fdw部署过程中的常见错误
  • 17.8 本章小结
  • 第18章 PostGIS
  • 18.1 安装与配置
  • 18.2 创建GIS数据库
  • 18.3 几何对象
  • 18.3.1 几何对象的输入
  • 18.3.2 几何对象的存储
  • 18.3.3 几何对象的输出
  • 18.3.4 几何对象的运算
  • 18.4 应用场景:圈人与地理围栏
  • 18.4.1 空间索引
  • 18.4.2 地理围栏
  • 18.5 本章小结
展开全部

评分及书评

尚无评分
目前还没人评分
  • 加载中...

出版方

机械工业出版社有限公司

机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。