PostgreSQL数据库软件 V13.3.2 官方最新版
软件简介
Postgresql数据库软件是一款非常专业的数据库管理软件。轻松管理自己的电脑数据库。支持大部分SQL标准,可用多种方法扩展,并提供许多其他现代特性,如复杂查询、触发器、视图、外键等。欢迎有需要的朋友前来下载使用。
软件特色
1、存储设备管理子模块:
数据库记录是存储在存储介质上的,存储设备管理子模块将屏蔽不同物理存储设备(块设备,流设备)接口函数的差异,向上层缓冲区管理子模块提供统一的访问接口函数。
2、缓冲区管理子模块:
管理postgresql的缓冲区,包括本地缓冲区和共享缓冲区。
3、页面管理子模块:
对postgresql缓冲区页面的组织结构进行定义以及提供页面操作的方法。
4、文件管理子模块:
一般的操作系统对一个进程允许打开的文件数是有限制的,而postgresql服务器有些时候需要打开的文件数是很多的,因此postgresql文件管理子模块自身为了突破这个瓶颈,封装了文件的读写操作,在这里建立了一个lru链表,通过一定的替换算法来对打开的文件进行管理,使得可以打开的文件数目不受操作系统平台的限制。
亮点优势函数:
通过函数,可以在数据库服务器端执行指令程序。
触发器:
触发器是由sql语句查询所触发的事件。如:一个insert语句可能触发一个检查数据完整性的触发器。触发器通常由insert或update语句触发。 多版本并发控制:postgresql使用多版本并发控制(mvcc,multiversion concurrency control)系统进行并发控制,该系统向每个用户提供了一个数据库的“快照”,用户在事务内所作的每个修改,对于其他的用户都不可见,直到该事务成功提交。
索引:
用户可以自定义索引方法,或使用内置的b树,哈希表与gist索引。
规则:
规则(rule)允许一个查询能被重写,通常用来实现对视图(view)的操作,如插入(insert)、更新(update)、删除(delete)。
全文检索:通过 tsearch2 或 openfts,8.3版本中内嵌 tsearch2。
nosql:
json,jsonb,xml,hstore 原生支持,至 nosql 数据库的外部数据包装器。
数据类型:
包括文本、任意精度的数值数组、json 数据、枚举类型、xml 数据等。
数据仓库:
能平滑迁移至同属 postgresql 生态的 greenplum,deepgreen,hawk等,使用 fdw 进行etl。
主要功能
1)用户定义函数的扩展方面,postgresql可以更方便地使用udf(用户定义函数)进行扩展。
2)操作系统支持windows、linux、unix、mac os x、bsd。
3)维护者是postgresql global development group,首次发布于1989年6月。
4)表和视图方面,postgresql支持临时表,而物化视图,可以使用pl/pgsql、pl/perl、pl/python或其他过程语言的存储过程和触发器模拟。
5)从基本功能上来看,支持acid、关联完整性、数据库事务、unicode多国语言。
6)其他对象上,支持数据域,支持存储过程、触发器、函数、外部调用、游标7)数据表分区方面,支持4种分区,即范围、哈希、混合、列表。
8)从事务的支持度上看,对事务的支持与mysql相比,经历了更为彻底的测试。
9)索引方面,全面支持r-/r+tree索引、哈希索引、反向索引、部分索引、expression 索引、gist、gin(用来加速全文检索),从8.3版本开始支持位图索引。
10)从存储过程上看,postgresql支持存储过程。因为存储过程的存在也避免了在网络上大量原始的sql语句的传输,这样的优势是显而易见的。
11)my isam表处理方式方面,mysql对于无事务的myisam表,采用表锁定,1个长时间运行的查询很可能会阻碍对表的更新,而postgresql不存在这样的问题。
用户测评postgresql提供了两种可选模式。一种模式保证如果操作系统或硬件崩溃,则数据将保存到磁盘中,这种模式通常比大多数商业数据库要慢,这是因为它使用了刷新(或同步)方法;另一种模式与第一种不同,它不提供数据保证,但它通常比商业数据库运行得快。遗憾的是,还没有一种折中的模式:既提供一定程度的数据安全性,又有较快的执行速度。今后的版本将会提供这种模式。
更新日志
保持了一贯以来的传统,即在各种规模负载下都可以提供较理想的性能表现。这个版本尤其是在有大量连接的场景下(不论这些连接是活动或是休闲状态),大幅提高了事务的吞吐量。
gist索引在创建的过程中可以预排序,对快速创建索引或是减小索引大小都有好处。
在减少b树索引负载方面有了提高,包括对频繁更新的表索引减少了表膨胀的情况。
sp-gist索引 现在支持包含索引,让用户可以通过include选项来添加非搜索列至索引中。