热门排行
简介
PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。PostgreSQL 全球开发组发布了所有受支持的 PostgreSQL 版本的更新,包括 16.3、15.7、14.12、13.15 和 12.19。此版本修复了一个安全漏洞以及过去几个月报告的超过 55 个错误。,这是世界上最先进的开源数据库的最新版本,需要的朋友可下载试试!
在系统视图 pg_stats_ext 和中发现了一个安全漏洞 pg_stats_ext_exprs,可能允许经过身份验证的数据库用户查看他们没有足够权限查看的数据。此漏洞的修复仅修复新的 PostgreSQL 安装,即 initdb 应用此修复后使用该实用程序创建的安装。如果您当前安装了 PostgreSQL 并且担心此问题,请按照 “更新” 部分中的说明进行修复步骤。
介绍
PostgreSQL对索引和查找系统(lookup system)进行了重大改进,使大型数据库受益,包括节省了空间并提高了索引的性能,使用聚合或分区使查询的响应时间更快,使用增强的统计信息时更好的查询计划等等。
PostgreSQL 除具有高度要求的功能(如并行清理 和增量排序)外,还为大小工作量提供了更好的数据管理体验,并为日常管理进行了优化,为应用程序开发人员提供了更多便利,并增强了安全性。
PostgreSQL核心团队成员Peter Eisentraut说:“ PostgreSQL 13展示了我们全球社区在增强世界上最先进的开源关系数据库功能方面的协作和奉献精神”,“每个发行版所带来的创新以及其在可靠性和稳定性方面的声誉,都是为什么越来越多的人选择在其应用程序中使用PostgreSQL的原因。”
PostgreSQL是一种创新的数据管理系统,以其可靠性和健壮性著称,得益于全球开发者社区超过25年的开源开发,它 已成为各种规模组织首选的开源关系数据库。
安装方法
1、下载运行postgresql-windows-x64.exe,如图
2、选择安装路径,默认C盘
3、下一步,输入密码,端口默认即可
4、next进行安装,稍等片刻即可
5、安装完成后去掉勾选不启动。打开 pgAdmin 4
6、点击左侧的 Servers > Postgre SQL
7、输入密码,点击 OK 即可
8、开始菜单中打开 SQL Shell(psql)
9、如图,输入回车、密码即可
软件特点
持续性能表现
在先前PostgreSQL版本的基础上,PostgreSQL 可以有效地处理标准数据库索引B-tree索引中的重复数据。这降低了B树索引所需的总体空间使用量,同时提高了整体查询性能。
PostgreSQL 引入了增量排序,其中查询中来自较早步骤的已排序数据可以加快后续步骤的排序。此外,PostgreSQL现在可以使用扩展的统计系统(可通过访问CREATESTATISTICS)来为带有OR子句和IN/ANY查找列表的查询创建改进的计划。
在PostgreSQL 中,更多类型的聚合查询和分组查询可以利用PostgreSQL的高效哈希聚合功能,因为具有大聚合的查询不必完全容纳在内存中。带有分区表的查询的性能得到了提高,因为现在有更多情况可以裁剪(prune)分区并且可以直接关联(join)分区。
管理优化
Vacuuming是PostgreSQL管理的重要组成部分,它使数据库能够在更新和删除行之后回收存储空间。尽管以前的PostgreSQL版本已经完成了减轻清理开销的工作,但是此过程也可能带来管理上的挑战。
PostgreSQL通过引入用于索引的parallelizedvacuum 继续改进vacuuming system。除了它提供的清理性能优势外,由于管理员可以选择要运行的并行workers的数量,因此可以针对特定的工作负载调整此新功能的使用。除了这些性能优势之外,数据插入现在还可以触发autovacuum process。
复制槽(用于防止在复制副本接收到WAL预写日志之前将其删除)可在PostgreSQL 中进行调整,以指定要保留的WAL文件的最大数量,并有助于避免磁盘空间不足错误。
PostgreSQL 还添加了更多管理员可以监视数据库活动的方式,包括从参考WAL使用情况统计信息EXPLAIN,流式基础备份的进度以及ANALYZE命令的进度。另外,可以使用新pg_verifybackup命令去检查pg_basebackup输出的完整性。
方便应用程序开发
PostgreSQL 使使用来自不同数据源的PostgreSQL数据类型更加容易。此版本将datetime()功能添加到其SQL / JSON路径支持中,该功能将有效的时间格式(例如ISO 8601字符串)转换为PostgreSQL本地类型。此外,UUID v4生成功能gen_random_uuid()函数现已可用,而无需安装任何扩展。
PostgreSQL的分区系统更加灵活,因为分区表完全支持逻辑复制和before行级触发器。
PostgreSQL 中的FETCH FIRST语法已扩展为包含该WITH TIES子句。指定时,WITH TIES包括基于ORDER BY子句的“ tie”与结果集中最后一行的任何行。
安全提升
PostgreSQL的扩展系统是其健壮性的关键组成部分,因为它允许开发人员扩展其功能。在以前的版本中,新的扩展只能由数据库超级用户安装。为了更轻松地利用PostgreSQL的可扩展性,PostgreSQL 添加了“可信扩展”的概念,该概念允许数据库用户安装超级用户标记为“可信”的扩展。某些内置扩展标记默认为可信,包括pgcrypto,tablefunc,hstore等等。
对于需要安全身份验证方法的应用程序,PostgreSQL 允许客户端在使用SCRAM身份验证时要求通道绑定(channel binding),并且PostgreSQL外部数据包装器(postgres_fdw)现在可以使用基于证书的身份验证。
更新日志
版本17包含许多可能影响与以前版本兼容性的更改。请注意以下不兼容性:
在维护操作期间更改函数以使用安全的搜索路径(Jeff Davis)§
这可以防止维护操作(ANALYZE、CLUSTER、REFRESH MATERIALIZED VIEW、REINDEX或VACUUM)执行不安全的访问。需要引用非默认模式的表达式索引和物化视图使用的函数必须在函数创建期间指定搜索路径。
限制ago只出现在区间值的末尾(Joseph Koshakow)§§
此外,请防止空间隔单位多次出现。
删除服务器变量old_snapshot_threshold(托马斯·蒙罗)§
此变量允许真空删除可能对正在运行的事务仍然可见的行,从而在以后访问时导致“快照太旧”错误。如果发现改进的实现,稍后可能会将此功能重新添加到PostgreSQL中。
更改初始会话用户的超级用户状态的设置会话授权处理(Joseph Koshakow)§
新行为基于发出SET session AUTHORIZATION命令时会话用户的超级用户状态,而不是连接时的超级用户身份。
删除按数据库用户模拟的功能(Nathan Bossart)§
该功能db_user_namespace很少使用。
在Windows上删除wal_sync_method值fsync_writethrough(Thomas Munro)§
此值与Windows上的fsync相同。
更改两个WAL文件名函数的文件边界处理(Kyotaro Horiguchi、Andres Freund、Bruce Momjian)§
函数pg_walfile_name()和pg_walfile_name_offset()用于在LSN位于文件段边界时报告上一个LSN段号;它现在返回当前的LSN段。
删除服务器变量trace_recovery_message,因为它不再需要(Bharath Rupireddy)§
删除信息模式列element_types.domain_default(彼得·艾森特劳特)§
更改pgrowlocks锁定模式输出标签(Bruce Momjian)§
从pg_stat_bgwriter(Bharath Rupireddy)中删除缓冲包和缓冲包同步§
这些字段被认为是pg_stat_io中类似列的冗余字段。
重命名pg_stat_statements(Nazir Bilal Yavuz)的I/O块读/写时序统计列§
这将blk_read_time重命名为shared_blk_readtime,并将blk_write_time命名为shared_b1k_writetime。
更改pg_attribute.attstattarget和pg_statistic_ext.stxstattarget,将默认统计目标表示为NULL(彼得·艾森特劳特)§§
将pg_collation.colliculocale重命名为collocale,将pg_database.daticulocale重命名为datlocale(Jeff Davis)§
将pg_stat_progress_vacuum列max_dead_tuples重命名为max_dead-tuple_bytes,将num_dead_toupes重命名为num_dead_item_ids,并添加dead_tuple_bytes(泽田正彦)§
重命名系统视图pg_stat_SLRU中的SLRU列(Alvaro Herrera)§
pg_stat_reset_slru()接受的列名也发生了变化。