《PostgreSQL实战》谭峰 张文升

| 书名:PostgreSQL实战 作者:谭峰 张文升 出版社:机械工业出版社 译者:无 出版日期:2018-1-1 页数:399 ISBN:9787111603467 | 7.8 豆瓣评分 | 孔网购买 | 点击喜欢 | 全网资源sm.nayona.cn |
本页面仅为书籍推荐介绍,请支持购买正版!
内容简介:
本书由数据库专业开发人员撰写,系统介绍PostgreSQL10的丰富特性,及其在生产实践运维中的技巧,全书分为基础篇、核心篇、进阶篇,共18章。基础篇包括第1~4章,主要介绍PostgreSQL基础知识,例如安装与配置、客户端工具、数据类型、SQL高级特性等,为读者阅读核心篇和进阶篇做好准备;核心篇包括第5-9章,主要介绍PostgreSQL核心内容,例如体系结构、并行查询、事务与并发控制、分区表等;进阶篇包括第10~18章,主要介绍PostgreSQL高级内容,例如性能优化、物理复制、逻辑复制、备份与恢复、高可用、版本升级、扩展模块、Oracle数据库迁移PostgreSQL实战、PostGIS等。
作者简介:
谭峰 网名francs,中国开源软件推进联盟PostgreSQL分会特聘专家,《PostgreSQL 9 Administration Cookbook》译者之一,《PostgreSQL High Performance Cookbook》英文版技术审校者之一,曾在杭州斯凯网络科技有限公司从事PostgreSQL DBA一职六年。热忠于博客分享PostgreSQL经验,分享技术博客500余篇。现就职于浙江移动负责应用上云架构管控、资源分配以及私有云建设工作。
张文升 中国开源软件推进联盟PostgreSQL分会核心成员之一。常年活跃于PostgreSQL、MySQL、Redis等开源技术社区,坚持推动PostgreSQL在中国地区的发展,多次参与组织PostgreSQL全国用户大会。近年来致力于推动PostgreSQL在互联网企业的应用以及企业PostgreSQL培训与技术支持。
目 录:
Contents 目录
序言
前言
基础篇
第1章安装与配置基础2
1.1初识PostgreSQL2
1.1.1PostgreSQL的特点3
1.1.2许可3
1.1.3邮件列表和讨论区3
1.2安装PostgreSQL3
1.2.1通过yum源安装4
1.2.2通过源码编译安装5
1.2.3设置一个软链接7
1.3客户端程序和服务器程序8
1.3.1客户端程序8
1.3.2服务器程序11
1.4创建数据库实例11
1.4.1创建操作系统用户11
1.4.2创建数据目录12
1.4.3初始化数据目录13
1.5启动和停止数据库服务器14
1.5.1使用service方式15
1.5.2使用pg_ctl进行管理15
1.5.3其他启动和关闭数据库服务器的方式16
1.5.4配置开机启动16
1.6数据库配置基础17
1.6.1配置文件的位置17
1.6.2pg_hba.conf17
1.6.3postgresql.conf19
1.6.4允许远程访问数据库20
1.7本章小结22
第2章客户端工具23
2.1pgAdmin 4简介23
2.1.1pgAdmin 4 安装23
2.1.2pgAdmin 4 使用23
2.2psql功能及应用26
2.2.1使用psql连接数据库26
2.2.2psql元命令介绍28
2.2.3psql导入、导出表数据31
2.2.4psql的语法和选项介绍34
2.2.5psql执行sql脚本36
2.2.6psql如何传递变量到SQL37
2.2.7使用psql定制日常维护脚本38
2.2.8psql亮点功能39
2.3本章小结43
第3章数据类型44
3.1数字类型44
3.1.1数字类型列表44
3.1.2数字类型操作符和数学函数46
3.2字符类型47
3.2.1字符类型列表47
3.2.2字符类型函数48
3.3时间/日期类型49
3.3.1时间/日期类型列表49
3.3.2时间/日期类型操作符50
3.3.3时间/日期类型常用函数51
3.4布尔类型52
3.5网络地址类型53
3.5.1网络地址类型列表54
3.5.2网络地址操作符55
3.5.3网络地址函数56
3.6数组类型56
3.6.1数组类型定义56
3.6.2数组类型值输入56
3.6.3查询数组元素57
3.6.4数组元素的追加、删除、更新58
3.6.5数组操作符58
3.6.6数组函数59
3.7范围类型60
3.7.1范围类型列表60
3.7.2范围类型边界61
3.7.3范围类型操作符62
3.7.4范围类型函数62
3.7.5给范围类型创建索引63
3.8json/jsonb类型63
3.8.1json类型简介63
3.8.2查询json数据64
3.8.3jsonb与json差异64
3.8.4jsonb与json操作符65
3.8.5jsonb与json函数66
3.8.6jsonb键/值的追加、删除、更新66
3.9数据类型转换68
3.9.1通过格式化函数进行转换68
3.9.2通过CAST函数进行转换68
3.9.3通过::操作符进行转换69
3.10本章小结70
第4章SQL高级特性71
4.1WITH查询71
4.1.1复杂查询使用CTE71
4.1.2递归查询使用CTE72
4.2批量插入74
4.2.1方式一:INSERT INTO…SELECT…74
4.2.2方式二:INSERT INTO VALUES (),(),…()75
4.2.3方式三:COPY或COPY元命令75
4.3RETURNING返回修改的数据76
4.3.1RETURNING返回插入的数据76
4.3.2RETURNING返回更新后数据77
4.3.3RETURNING返回删除的数据77
4.4UPSERT78
4.4.1UPSERT场景演示78
4.4.2UPSERT语法79
4.5数据抽样80
4.5.1SYSTEM抽样方式81
4.5.2BERNOULLI抽样方式82
4.6聚合函数84
4.6.1string_agg函数84
4.6.2array_agg函数85
4.7窗口函数86
4.7.1窗口函数语法86
4.7.2avg() OVER()87
4.7.3row_number()88
4.7.4rank()89
4.7.5dense_rank ()89
4.7.6lag()90
4.7.7first_value ()91
4.7.8last_value ()91
4.7.9nth_value ()92
4.7.10窗口函数别名的使用92
4.8本章小结93
核心篇
第5章体系结构96
5.1逻辑和物理存储结构96
5.1.1逻辑存储结构96
5.1.2物理存储结构97
5.2进程结构105
5.2.1守护进程与服务进程105
5.2.2辅助进程105
5.3内存结构106
5.3.1本地内存106
5.3.2共享内存107
5.4本章小结107
第6章并行查询109
6.1并行查询相关配置参数109
6.2并行扫描111
6.2.1并行顺序扫描111
6.2.2并行索引扫描112
6.2.3并行index-only扫描114
6.2.4并行bitmap heap扫描115
6.3并行聚合117
6.4多表关联119
6.4.1Nested loop多表关联120
6.4.2Merge join多表关联121
6.4.3Hash join多表关联122
6.5本章小结124
第7章事务与并发控制125
7.1事务和并发控制的概念125
7.1.1事务的基本概念和性质125
7.1.2并发引发的现象126
7.1.3ANSI SQL标准的事务隔离级别129
7.2PostgreSQL的事务隔离级别130
7.2.1查看和设置数据库的事务隔离级别131
7.2.2修改全局的事务隔离级别132
7.2.3查看当前会话的事务隔离级别132
7.2.4设置当前会话的事务隔离级别132
7.2.5设置当前事务的事务隔离级别133
7.3PostgreSQL的并发控制133
7.3.1基于锁的并发控制134
7.3.2基于多版本的并发控制134
7.3.3通过pageinspect观察MVCC137
7.3.4使用pg_repack解决表膨胀问题140
7.3.5支持事务的DDL140
7.4本章小结141
第8章分区表142
8.1分区表的
……
应版权方要求删除下载,请支持购买正版!
摘要:《PostgreSQL实战》由谭峰与张文升合著,是数据库领域一部兼具理论深度与实践指导意义的佳作。本书以PostgreSQL这一开源关系型数据库为核心,系统性地解构了从基础架构到高级应用的完整知识体系。作者凭借丰富的实战经验,将复杂的数据库原理转化为可操作的技术方案,内容涵盖性能调优、高可用架构、安全策略及SQL优化等关键领域。全书不仅为初学者提供了清晰的学习路径,更为资深开发者提供了解决实际问题的利器。通过大量真实案例与代码示例,读者能够深入理解PostgreSQL的内部机制,并掌握应对大规模数据挑战的有效方法。本文将从四个核心维度剖析这部著作的精华,展现其在技术进阶与工程实践中的独特价值。
1、架构解析与核心机制
本书开篇便深入PostgreSQL的体系结构,从进程架构、内存管理到存储引擎,逐一拆解其设计哲学。作者详细阐述了共享缓冲区、WAL日志、检查点等核心组件如何协同工作,确保数据的一致性与高性能。这种从底层出发的讲解方式,让读者不再停留于表面操作,而是真正理解数据库行为背后的逻辑。
针对PostgreSQL的多版本并发控制机制,书中通过清晰的图表与代码演示,解释了事务隔离级别如何影响数据可见性。读者可以借此掌握如何避免脏读、不可重复读等常见问题,并在高并发场景下做出合理的事务设计。这种对并发控制的深度剖析,是提升应用可靠性的关键。
此外,书中还专门讨论了PostgreSQL的扩展性与插件生态。从FDW外部数据包装器到PostGIS地理空间扩展,作者展示了如何通过模块化设计满足多样化业务需求。这些内容帮助读者跳出单一数据库的局限,学会构建灵活、可扩展的数据处理平台。
2、性能调优与索引策略
性能调优是实战中的核心挑战,本书将其视为一门系统化的科学而非零散技巧。作者首先引导读者建立性能基准,通过分析查询计划、监控系统指标来定位瓶颈。这种数据驱动的调优方法,避免了盲目修改配置导致的副作用,确保每一次优化都有据可依。
在索引策略方面,书中对比了B-Tree、Hash、GiST、GIN等多种索引类型在不同查询模式下的表现。通过大量实际案例,读者能学会如何根据数据分布与查询特征选择最合适的索引,并避免冗余索引带来的写入开销。特别是对部分索引、覆盖索引等高级用法的讲解,为解决复杂查询提供了新思路。
书中还重点介绍了PostgreSQL的配置参数调优,如shared_buffers、work_mem、maintenance_work_mem等关键设置。作者结合硬件环境与负载特点,给出了参数调整的通用原则与具体示例。这些内容不仅适用于传统OLTP场景,也为OLAP分析型工作负载提供了优化路径。
3、高可用架构与容灾方案
高可用性是现代数据库系统的生命线,本书对此进行了全面而深入的探讨。从流复制的基础配置到同步/异步模式的权衡,作者详细说明了如何构建主从复制架构。书中特别强调了复制槽、延迟复制等高级特性在数据保护中的重要作用,帮助读者规避数据丢失风险。
针对故障转移与集群管理,书中引入了Patroni、Pgpool-II等流行工具的使用方法。通过一步步操作示例,读者可以搭建自动故障检测与切换的健壮集群。这些实战经验让数据库运维从被动救火转变为主动防御,极大提升了系统的连续性与稳定性。
此外,本书还涵盖了备份与恢复的最佳实践。从pg_dump逻辑备份到pg_basebackup物理备份,作者对比了不同场景下的恢复策略,并演示了如何利用时间点恢复功能挽回误操作造成的损失。这些内容为构建完整的容灾体系提供了坚实的技术支撑。
4、SQL优化与安全实践
SQL优化是数据库性能的最终落脚点,本书以大量篇幅剖析了查询优化的核心技巧。作者引导读者解读EXPLAIN输出,识别全表扫描、嵌套循环等低效操作,并学会使用连接顺序调整、子查询改写等手段提升执行效率。每一个优化案例都附有前后对比数据,让效果清晰可见。
在安全实践方面,书中系统介绍了PostgreSQL的认证、授权与审计机制。从角色管理到行级安全策略,从SSL加密连接到透明数据加密,作者展示了如何构建多层防护体系。特别是对权限最小化原则与安全审计日志的解读,为企业合规提供了具体操作指南。
最后,书中还讨论了常见的安全威胁与应对措施,如SQL注入防御、敏感数据脱敏等。通过结合具体业务场景,读者能够将安全理念融入开发流程,而非事后补救。这种将优化与安全并重的思路,体现了实战书籍的全面性与前瞻性。
总结:
《PostgreSQL实战》以其系统化的知识结构和丰富的实践案例,成功架起了理论原理与工程应用之间的桥梁。谭峰与张文升两位作者将自身多年积累的数据库经验倾注其中,无论是初学者还是资深工程师,都能从中获得启发与提升。本书不仅是一本技术手册,更是一套解决问题的思维框架,引导读者在面对复杂数据挑战时能够从容应对。
通过对架构、性能、高可用及安全等核心领域的深入剖析,本书展现了PostgreSQL作为企业级数据库的强大能力。它教会读者的不仅是操作步骤,更是如何思考、如何诊断、如何设计。在数据驱动的时代,这本书无疑是每一位数据库从业者案头不可或缺的实战指南。
本文由nayona.cn整理
联系我们

关注公众号

微信扫一扫
支付宝扫一扫
