PostgreSQL 大数据时代应用数据库

    PostgreSQL是一个功能强大的开源对象关系数据库系统。它拥有超过15年的积极开发和经过验证的架构,在可靠性,数据完整性和正确性方面赢得了良好声誉。它运行在所有主要操作系统上,包括Linux,UNIX(AIX,BSD,HP-UX,macOS,Solaris)和Windows。它完全兼容ACID,完全支持外键,连接,视图,触发器和存储过程(使用多种语言)。它包括大多数SQL:2008数据类型,包括INTEGER,NUMERIC,BOOLEAN,CHAR,VARCHAR,DATE,INTERVAL和TIMESTAMP。它还支持存储二进制大对象,包括图片,声音或视频。它具有用于C / C ++,Java,.Net,Perl,Python,Ruby,Tcl,ODBC等的本机编程接口以及特殊文档

一个企业级数据库,PostgreSQL拥有诸如多版本并发控制(MVCC),时间点恢复,表空间,异步复制,嵌套事务(保存点),在线/热备份,复杂的查询计划器/优化器和写提前记录容错。它支持国际字符集,多字节字符编码,Unicode,它是区分感知排序,区分大小写和格式。无论是可以管理的数据量还是可以容纳的并发用户数量都是高度可扩展的。在生产环境中有活动的PostgreSQL实例管理很多太字节的数据,以及管理PB级别的集群。下表列出了一些通用的PostgreSQL限制。

限制
最大数据库大小 无限
最大表格大小 32 TB
最大行大小 1.6 TB
最大字段大小 1 GB
每表的最大行数 无限
每个表的最大列数 250 - 1600取决于列类型
每张表的最大索引 无限

PostgreSQL赢得了用户业界的认可,包括Linux新媒体最佳数据库系统奖和最佳数据库管理系统“Linux杂志编辑选择奖”五次获奖者。

功能强大且符合标准

PostgreSQL在标准遵从方面引以为傲。其SQL实现强烈符合ANSI-SQL:2008标准。它完全支持子查询(包括FROM子句中的子查询),读提交和可序列化的事务隔离级别。虽然PostgreSQL有一个完全关系型的系统目录,它本身支持每个数据库的多个模式,但是它的目录也可以通过SQL标准中定义的信息模式来访问。

数据完整性功能包括(复合)主键,具有限制和级联更新/删除的外键,检查约束,唯一约束和非空约束。

它也有很多扩展和高级功能。其中便利之处是通过序列自动递增列, LIMIT / OFFSET允许返回部分结果集。PostgreSQL支持可以使用任何B树,R树,哈希或GiST存储方法的复合,唯一,部分和功能索引。

GiST (广义搜索树)索引是一个先进的系统,汇集了各种不同的排序和搜索算法,包括B树,B +树,R树,部分和树,排名B +树等等。它还提供了一个接口,允许创建自定义数据类型以及用于搜索它们的可扩展查询方法。因此,GiST的提供了灵活地指定什么你存储, 怎么你保存它,并确定新的方式的能力,通过它来搜索,远远超过方式---通过这些标准的B-tree,R-tree和其他通用搜索提供算法。

GiST是许多使用PostgreSQL的公共项目(如OpenFTSPostGIS)的基础OpenFTS(开源全文搜索引擎)为数据库搜索提供在线数据索引和相关性排名。PostGIS是一个在PostgreSQL中添加对地理对象的支持的项目,允许它被用作地理信息系统(GIS)的空间数据库,就像ESRI的SDE或Oracle的Spatial扩展一样。

其他高级功能包括表继承,规则系统和数据库事件。表继承将面向对象放在表创建上,允许数据库设计者从其他表中派生新表,将它们作为基类处理。更好的是,PostgreSQL以这种方式支持单继承和多继承。

规则系统(也称为查询重写系统)允许数据库设计人员创建规则,以识别给定表或视图的特定操作,并在处理它们时将其动态转换为备用操作。

事件系统是一个进程间通信系统,在这个系统中,消息和事件可以使用LISTENNOTIFY命令在客户端之间传输 ,允许简单的点对点通信和高级的数据库事件协调。由于通知可以从触发器和存储过程发出,PostgreSQL客户端可以监视数据库事件,比如表更新,插入或删除。

猜你喜欢

转载自15810431930.iteye.com/blog/2408936