5月19日,postgresql 15 beta版本已发布,本文参考官方release文档e.1.2.小节,迁移到版本15的部分兼容性解读。
官方release文档链接如下:
https://www.postgresql.org/docs/15/release-15.html
1.public模式相关
public模式相关有两条:
- public模式create权限默认被回收
- public模式owner变为pg_database_owner
从上面的测试截图可以看到对比区别,如果要保持与旧版本的兼容性,可以修改template1,添加create权限。
2.backup相关
- 删除了pg_start_backup函数的exclusive参数
- pg_start_backup重命名为pg_backup_start
- pg_stop_backup重命名为pg_backup_stop
- pg_backup_start_time函数被移除
- pg_is_in_backup函数被移除
移除了对排他性备份的支持,以前默认排他性备份的模式下如果数据库服务器突然停止了,服务器可能会启动失败。
3.参数默认值相关
hash_mem_multiplier由1.0增大到2.0
hash_mem_multiplier是pg13增加的参数,用来计算基于hash操作可以使用的最大内存。在13和14里默认值是1,15里默认值由1.0增大到2.0,允许hash操作相比其它操作可以使用双倍的work_mem。
4.间隔类型与函数输出相关
mark the interval output function as stable, not immutable, since it depends on intervalstyle
下面截图是intervalstyle控制间隔类型的输出,上面描述的功能可能与创建基于函数的索引有关。
5.备份时同步快照相关
synchronized-snapshots功能是9.2版本引入,如果对9.2之前的版本使用并行dump,需要保证与主库建立连接到最后一个并行进程连接期间不对数据库做任何修改。那如果对9.2之前的版本使用-j进行备份时需要加-no-synchronized-snapshots选项。
9.2版本已经是比较老的版本,新的版本都支持synchronized-snapshots功能,因而pg_dump功能移除了–no-synchronized-snapshots选项
6.临时对象schema名称显示优化
explain执行计划里临时对象的schema名称固化
临时表是在一个特殊的schema里,可以看到左边的执行计划截图,实际的schema名称是一个动态的名称。新版本执行计划里显示临时对象的schema固定显示为pg_temp。
7.自定义变量限制
已安装扩展插件名称不允许作为自定义变量前缀,否则在扩展插件加载时会自动删除该变量。
8.移除了stats_temp_directory参数
删除了stats_temp_directory参数
9.random函数算法优化
random随机数生成算法发生改变
对比14和15来看,最明显的长度也是不一样的。
保持联系
从2019年12月开始写第一篇文章,分享的初心一直在坚持,本人现在组建了一个pg乐知乐享交流群,欢迎关注我文章的小伙伴加我微信进群吹牛唠嗑,交流技术。