PostgreSQL 10 正式版新特性,显著的性能提升
从 5 月份发布的 PostgreSQL 10 首个 Beta 测试版到今天已有小半年时间,今天 PostgreSQL 终于宣布了 PostgreSQL 10 正式版。
全新的 PostgreSQL 10 正式版值得关注的新特性包括:
• 使用基于发布和订阅机制的逻辑复制
• 声明式的表分区
• 提升了查询的并发性
• 显著的性能提升
• 更强的基于 SCRAM-SHA-256 密码认证机制
• 提升了监控和控制功能
从 beta1 到 rc1 , PostgreSQL 10 的主要新特性已趋于定性,包括:
☞ 大数据
• 原生分区(内置分区):PostgreSQL 10 中将内置分区表功能,依旧使用了继承的特性,但不需要手工写规则了,全部由系统处理。
• 并行增强:包括并行合并连接、并行索引扫描、并行位图扫描、收集合并等等。
• 连接和聚合下推:在外部表上做 aggregates 操作时,10 版本之前的处理过程是先将远程库的数据全部取到本地库,之后在本地库上 aggregates 操作,10 版本后部分 aggregates 操作可下推到远程库,这大幅减少了远程库传到本地库的数据量,并让聚合计算从请求服务器抽离。
• 更快的分析查询
☞ 复制和扩展
• 逻辑复制:可复制指定的表,或是进行复制方式的升级
• 同步复制的优选提交:确保多节点时数据的可靠性和性能
• 临时 replication slots:在会话结束时自动删除
• 故障切换:自动连接到列表中第一个可用的主机
• 可追踪提交
• 物理复制:改进两阶段提交的 replay 性能
☞ 管理
• 对 pg_receivewal 的压缩支持
• pg_stat_activity 后台进程显示:包括辅助进程、工作进程、WAL 发件人等
☞ SQL 特性
• 标识列:https://blog.2ndquadrant.com/postgresql-10-identity-columns/
• 宕机安全和可复制的哈希索引
• 触发器表转换:触发器执行时表内容变化的查询
☞ XML 和 JSON
• XMLTable:可将 XML 文档转换为表格式,从而使数据库中的 XML 数据更容易处理
• JSON 和 JSONB 全文搜索支持
☞ 安全性
• SCRAM 认证:用于更新安全的基于密码认证的访问
• 新增"监控"角色:pg_read_all_settings、pg_read_all_stats、pg_stat_scan_tables、pg_monitor
• 与行级安全有关的限制策略
☞ 性能
• 多列统计:https://blog.2ndquadrant.com/pg-phriday-crazy-correlated-column-crusade/
• pg_stat_activity 等待事件状态显示:PostgreSQL 9.6 代码共测试了 69 个等待事件,PostgreSQL 10 再次扩展,已包含 184 个等待事件。
• 查询方案改进
以及,更多……
官方发行说明:
https://www.postgresql.org/docs/10/static/release-10.html?x=1 。
同时这里有一份 PDF 文档通过实例详细介绍 PG 10 的新特性。