快速掌握PostgreSQL版本新特性
书籍作者:彭冲 |
ISBN:9787121467400 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:3751 |
创建日期:2024-05-08 |
发布日期:2024-05-08 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
自2019年底加入墨天轮数据社区以来,笔者在PG乐知乐享专栏持续撰写了与PostgreSQL相关的文章,近几年陆续撰写了一些有关各版本新特性方面的文章。由于PostgreSQL每个版本发布的新特性较多,因此要想全面、完整地掌握PostgreSQL新特性十分困难。本书对PostgreSQL的7个大版本:从PostgreSQL 10到PostgreSQL 16,根据公开的新特性实验手册、新特性相关的文章、邮件列表、社区核心提交者相关的博客,以及官方Release Notes等素材进行精加工,并从主要性能、可靠性、运维管理、开发易用性、系统层5个方面进行介绍。在当前国内外环境下,PostgreSQL正在不断崛起,本书从新特性的视角帮助读者掌握数据库的正确使用方式。
作者简介
彭冲,中国PostgreSQL分会PostgreSQL ACE,多年从事基于PostgreSQL数据库的软件研发,擅长于PL/PGSQL业务迁移及优化,曾在天津通卡作为核心开发人员将项目成功实施于委内瑞拉交通部现场,并成功完成全国公交系统整体迁移升级。后在银联体系从事商户交易数据异构处理工作。2019年加入云和恩墨,在数据库生态产品群从事开源数据库及国产数据库的建设,热衷于PostgreSQL及openGauss/MogDB数据库实践技术分享。
目录
第1章 PostgreSQL 10新特性 1
1.1 PostgreSQL 10的主要性能提升 1
1.1.1 数据分区 1
1.1.2 并行特性增强 1
1.1.3 统计信息扩展 2
1.1.4 AFTER触发器性能增强 4
1.1.5 Aggregate操作支持下推 5
1.2 PostgreSQL 10的可靠性提高 7
1.2.1 仲裁提交引入 7
1.2.2 HASH索引支持记录WAL 8
1.2.3 事务提交状态检测 8
1.3 PostgreSQL 10的运维管理优化 9
1.3.1 WAL文件大小扩容 9
1.3.2 WAL支持在线压缩 10
1.3.3 ICU标准库引入 10
1.3.4 活动会话视图增强 10
1.3.5 HBA文件新增系统视图 11
1.3.6 promote子命令增加等待模式 12
1.3.7 基础备份增强 12
1.3.8 临时复制槽引入 13
1.3.9 行级安全策略优化 13
1.3.10 PSQL工具允许条件式交互 15
1.4 PostgreSQL 10的开发易用性提升 15
1.4.1 声明式分区引入 15
1.4.2 表级数据发布与订阅 17
1.4.3 标识列引入 18
1.4.4 全文检索支持JSON与JSONB数据类型 21
1.4.5 xmltable函数引入 22
1.5 PostgreSQL 10的系统层变化 24
1.5.1 XLOG重命名 24
1.5.2 系统元数据引入 25
1.5.3 配置参数引入 26
1.5.4 口令加密安全性提高 26
1.5.5 预置角色变化 26
1.5.6 附加模块变化 27
1.6 本章小结 27
第2章 PostgreSQL 11新特性 28
2.1 PostgreSQL 11的主要性能提升 28
2.1.1 WAL可配置 28
2.1.2 B-Tree索引并行创建 29
2.1.3 HASH操作及HASH JOIN操作支持并行 30
2.1.4 其他并行特性支持 31
2.1.5 表达式索引引入 32
2.1.6 覆盖索引引入 33
2.1.7 实时编译引入 34
2.1.8 缓存管理改进 35
2.1.9 UPDATE操作和DELETE操作支持下推 35
2.2 PostgreSQL 11的可靠性提高 36
2.2.1 数据块校验和检测 36
2.2.2 B-Tree索引坏块检测 37
2.2.3 查询ID由32位扩充为64位 37
2.3 PostgreSQL 11的运维管理优化 38
2.3.1 快速添加列 38
2.3.2 维护操作支持多个表 40
2.3.3 分区数据支持通过父表加载 40
2.3.4 新增KILL信号 40
2.3.5 WAL支持离线重构 40
2.3.6 PSQL工具支持记录语句执行情况 41
2.4 PostgreSQL 11的开发易用性提升 42
2.4.1 声明式分区增强 42
2.4.2 支持事务控制的存储过程 43
2.4.3 逻辑复制支持TRUNCATE操作 44
2.4.4 窗口函数增强 44
2.5 PostgreSQL 11的系统层变化 45
2.5.1 配置参数引入 45
2.5.2 预置角色变化 46
2.5.3 超级用户权限下放 46
2.5.4 附加模块变化 47
2.6 本章小结 47
第3章 PostgreSQL 12新特性 48
3.1 PostgreSQL 12的主要性能提升 48
3.1.1 CTE优化 48
3.1.2 索引效率提升 50
3.1.3 系统函数优化 51
3.2 PostgreSQL 12的运维管理优化 51
3.2.1 校验和开关控制 51
3.2.2 COPY FROM命令数据过滤 52
3.2.3 用户级流复制超时控制 52
3.2.4 VACUUM操作及ANALYZE操作锁跳过 53
3.2.5 表及索引清理解耦 54
3.2.6 索引在线重建 54
3.2.7 执行计划显示非默认参数 55
3.2.8 后台操作进度报告引入 56
3.2.9 备库升主库开放SQL接口 57
3.2.10 PSQL工具帮助链接添加 57
3.3 PostgreSQL 12的开发易用性提升 58
3.3.1 声明式分区增强 58
3.3.2 运算存储列使用 59
3.3.3 绑定变量窥探引入 60
3.3.4 SQL/JSON path引入 61
3.3.5 枚举数据类型增强 63
3.4 PostgreSQL 12的系统层变化 63
3.4.1 表存储引擎开放 63
3.4.2 恢复相关配置优化 64
3.4.3 系统元数据引入 64
3.4.4 配置参数引入 65
3.4.5 流复制连接数优化 66
3.4.6 DOS攻击预防 66
3.4.7 SSL协议可控 67
3.4.8 附加模块变化 67
3.5 本章小结 67
第4章 PostgreSQL 13新特性 68
4.1 PostgreSQL 13的主要性能提升 68
4.1.1 索引去重 68
4.1.2 增量排序 70
4.1.3 库级索引并发重建 71
4.1.4 HASH聚合可溢出到磁盘 72
4.1.5 索引并行清理 72
4.1.6 PL/pgSQL提速 74
4.1.7 Windows连接优化 75
4.2 PostgreSQL 13的可靠性提高 75
4.2.1 备份可靠性提高 75
4.2.2 流复制可动态配置 77
4.3 PostgreSQL 13的运维管理优化 77
4.3.1 数据库删除更便捷 77
4.3.2 并行查询关联PID 78
4.3.3 共享内存可观测 79
4.3.4 基于磁盘的缓存可监控 79
4.3.5 后台操作进度报告引入 80
4.3.6 语句日志采样降噪 80
4.3.7 PSQL工具跟踪事务运行状态 80
4.3.8 pg_rewind工具优化 82
4.4 PostgreSQL 13的开发易用性提升 83
4.4.1 分区表及逻辑复制改进 83
4.4.2 标识列可忽略用户输入 84
4.4.3 存储列可转换为普通列 85
4.4.4 分页排序可并列排名 86
4.4.5 易用的内置函数引入 87
4.4.6 FF1~FF6时间格式引入 88
4.4.7 Row表达式使用 88
4.4.8 视图列名纠正 89
4.5 PostgreSQL 13的系统层变化 89
4.5.1 系统元数据引入 89
4.5.2 配置参数引入 89
4.5.3 对象标识符类型引入 90
4.5.4 内部术语引入 91
4.5.5 备库升主库流程优化 91
4.5.6 INSERT操作自动清理调优 92
4.5.7 WAL用量跟踪 93
4.5.8 坏块绕过继续恢复 95
4.5.9 外部表安全性提高 95
4.5.10 附加模块变化 96
4.6 本章小结 97
第5章 PostgreSQL 14新特性 98
5.1 PostgreSQL 14的主要性能提升 98
5.1.1 高并发连接优化 98
5.1.2 紧急清理模式引入 99
5.1.3 列级压缩可配置 99
5.1.4 逻辑复制改进 101
5.1.5 嵌套循环改进 102
5.1.6 并行特性增强 103
5.2 PostgreSQL 14的可靠性提高 104
5.2.1 数据结构检测 105
5.2.2 备节点可作为恢复源 105
5.2.3 密码长度限制取消 107
5.3 PostgreSQL 14的运维管理优化 107
5.3.1 查询ID引入 108
5.3.2 索引表空间在线移动 111
5.3.3 触发器在线重建 112
5.3.4 控制客户端连接 113
5.3.5 后台操作进度报告引入 114
5.3.6 可观测性增强 115
5.4 PostgreSQL 14的开发易用性提升 115
5.4.1 多范围类型引入 115
5.4.2 存储过程支持OUT模式参数 116
5.4.3 新形式的SQL函数引入 116
5.4.4 JSON操作功能增强 118
5.4.5 递归查询改进 119
5.4.6 易用的内置函数引入 122
5.5 PostgreSQL 14的系统层变化 125
5.5.1 系统元数据引入 125
5.5.2 系统函数变化 126
5.5.3 预置角色变化 126
5.5.4 配置参数变化 128
5.5.5 客户端C驱动改进 129
5.5.6 客户端认证安全性提高 130
5.5.7 附加模块变化 131
5.6 本章小结 133
第6章 PostgreSQL 15新特性 135
6.1 PostgreSQL 15的主要性能提升 135
6.1.1 统计信息内存化 135
6.1.2 增量排序算法改进 136
6.1.3 WAL恢复预读取 137
6.1.4 全块写新增压缩算法 138
6.1.5 备份效率提高 138
6.1.6 并行特性增强 140
6.2 PostgreSQL 15的可靠性提高 141
6.2.1 统计信息一致性读取 141
6.2.2 统一非独占备份模式引入 142
6.2.3 本地化Collation相关增强 142
6.2.4 流复制支持UNLOGGED序列 144
6.2.5 pg_rewind工具指定外部配置文件 145
6.3 PostgreSQL 15的运维管理优化 145
6.3.1 服务端本地备份引入 145
6.3.2 JSON格式日志引入 147
6.3.3 创建数据库功能增强 150
6.3.4 COPY操作对文本格式增强 150
6.3.5 执行计划显示信息改进 151
6.3.6 pg_receivewal工具压缩功能增强 153
6.3.7 PSQL工具优化 153
6.4 PostgreSQL 15的开发易用性提升 155
6.4.1 MERGE语句引入 155
6.4.2 NULL值与UNIQUE约束更搭 162
6.4.3 numeric数据类型改进 163
6.4.4 正则表达式函数引入 164
6.4.5 分区表改进 165
6.4.6 逻辑复制改进 166
6.5 PostgreSQL 15的系统层变化 167
6.5.1 系统元数据引入 167
6.5.2 系统函数变化 168
6.5.3 预置角色变化 169
6.5.4 配置参数变化 170
6.5.5 GRANT命令授权变化 173
6.5.6 递归查询优化 173
6.5.7 公共模式安全性提高 174
6.5.8 视图安全性提高 176
6.5.9 附加模块变化 177
6.6 本章小结 177
第7章 PostgreSQL 16新特性 179
7.1 PostgreSQL 16的主要性能提升 179
7.1.1 并行特性增强 179
7.1.2 预排序性能提升 180
7.1.3 死元组清理性能提升 180
7.1.4 其他性能提升 180
7.2 PostgreSQL 16的运维管理优化 181
7.2.1 I/O统计更详细 181
7.2.2 pg_dump工具功能增强 182
7.2.3 PSQL工具功能增强 183
7.2.4 VACUUM命令及VACUUMDB工具功能增强 183
7.2.5 pg_hba.conf文件配置更高效 184
7.2.6 普通用户连接优化 184
7.2.7 HOT更新监控增强 185
7.2.8 不活跃索引监控 185
7.2.9 便捷的参数化语句分析 186
7.3 PostgreSQL 16的开发易用性提升 187
7.3.1 逻辑复制功能完善 187
7.3.2 SQL标准2023部分支持引入 188
7.3.3 SQL/JSON 函数功能增强 189
7.3.4 数据导入默认值重定义 192
7.3.5 libpq协议负载均衡功能引入 193
7.4 PostgreSQL 16的系统层变化 193
7.4.1 版本兼容性变化 193
7.4.2 系统函数变化 195
7.4.3 预置角色变化 196
7.4.4 配置参数变化 196
7.4.5 初始用户权限优化 197
7.4.6 成员角色权限变化 197
7.4.7 附加模块变化 200
7.5 本章小结 200