PostgreSQL与中文社区

PostgreSQL社区

    PostgreSQL全球社区官网http://www.postgresql.org/

    中国开源联盟PostgreSQL协会官网:http://www.postgresqlchina.com/

    PostgreSQL中文社区官网http://www.postgres.cn/home

    PostgreSQL专业1群 : 3336901(已满)

    PostgreSQL专业2群 : 100910388

    PostgreSQL专业3群 : 150657323

    文档翻译群 : 309292849

172555_MtNk_1158288.jpg

 

 

PostgreSQL -  世界上最强大的开源数据库

中文转自:http://www.postgres.cn/about

英文参考: http://www.postgresql.org/about/

一、概要介绍

PostgreSQL是一个功能强大的开源数据库系统。经过长达15年以上的积极开发和不断改进,PostgreSQL已在可靠性、稳定性、数据一致性等获得了业内极高的声誉。目前PostgreSQL可以运行在所有主流操作系统上,包括Linux、Unix(AIX、BSD、HP-UX、SGI IRIX、Mac OS X、Solaris和Tru64)和Windows。PostgreSQL是完全的事务安全性数据库,完整地支持外键、联合、视图、触发器和存储过程(并支持多种语言开发存储过程)。它支持了大多数的SQL:2008标准的数据类型,包括整型、数值值、布尔型、字节型、字符型、日期型、时间间隔型和时间型,它也支持存储二进制的大对像,包括图片、声音和视频。PostgreSQL对很多高级开发语言有原生的编程接口,如C/C++、Java、.Net、Perl、Python、Ruby、Tcl 和ODBC以及其他语言等,也包含各种文档。

作为一种企业级数据库,PostgreSQL以它所具有的各种高级功能而自豪,像多版本并发控制(MVCC)、按时间点恢复(PITR)、表空间、异步复制、嵌套事务、在线热备、复杂查询的规划和优化以及为容错而进行的预写日志等。它支持国际字符集、多字节编码并支持使用当地语言进行排序、大小写处理和格式化等操作。它也在所能管理的大数据量和所允许的大用户量并发访问时间具有完全的高伸缩性。目前已有很多PostgreSQL的系统在实际生产环境下管理着超过4TB的数据。一些PostgreSQL系统的极限值如下表所列:

    极限值:

    最大单个数据库大小    不限

    最大数据单表大小    32 TB

    单条记录最大    1.6 TB

    单字段最大允许    1 GB

    单表允许最大记录数    不限

    单表最大字段数    250 - 1600 (取决于字段类型)

    单表最大索引数    不限

    由于PostgreSQL的优异性能,它已赢得最终用户和业内的多次大奖,包括Linux新媒体(Linux New Media)的最佳数据库奖和5次Linux期刊编辑选出的最佳数据库奖。

    众多功能和标准兼容性

    PostgreSQL对SQL标准高度兼容,它实现的功能完全遵守于ANSI-SQL:2008标准。目前完全支持子查询(包括在FROM中的子查询)、授权读取和可序列化的事务隔离级别。同时PostgreSQL也具有完整的关系数据库系统的目录功能,它支持单数据库的多模式功能,每一个目录可通过SQL标准中定义的字典信息模式进行访问。

Data集成性功能包括(复合)主键、含有严格约束或级联更新和删除功能的外键、录入检查约束、唯一性约束和非空约束。

PostgreSQL也具有很多扩展模块和更高级的功能。其中有为方便使用的通过序列实现的自增字段、 允许返回部分记录集的LIMIT/OFFSET选项,也支持复合、唯一、部分和函数式索引,索引并支持B-Tree、R-Tree、Hash或GiST存储方式。

GiST (通用搜索树) 索引是一种高级系统算法,它将不同的排序算法与包含B-Tree、B+-Tree、R-Tree、部分汇总树、可加权的B+-Tree以及其他多种搜索逻辑结合在一起,它也提供了接口允许创建用户数据类型和扩展的查询方法。这样,GiST提供了用户指定存储和定义新方法进行查询的灵活性---它大大超越了标准B-Tree、R-Tree和其他通用搜索逻辑所能提供的功能。

GiST现在也成为很多其他使用PostgreSQL公共项目的基础,如OpenFTS和PostGIS项目。 OpenFTS(开源全文搜索引擎)项目提供在线索引和数据库搜索的相当权重评分。 PostGIS项目给PostgreSQL增加了地理信息管理功能,允许用户将PostgreSQL作为GIS空间地理信息数据库使用,这和专业的ESRI公司的SDE系统以及Oracle的空间地理扩展模块功能相同。

其他高级功能包括表继承、规则和数据库事件响应功能等。表继承功能可以按原来的一个表创建一个有关系的新表,这样允许数据库设计人员可以将一个表作为基表,从基表派生出新表。并且PostgreSQL甚至可以使用此方式实现单级或多级的继承。

规则功能是用来调用查询的重算功能,允许数据库设计人员根据不同的表或视图来创建规则,以实现动态改变数据库原操作为新的操作的功能。

事件响应功能是一个内部通讯功能,它将系统信息或事件在用户使用的LISTEN和NOTIFY两条指令后进行传递,允许 简要的点对点通讯或是对指定数据库事件的定点通讯。由于信息可以从触发器或是存储过程中发出,PostgreSQL的用户可以监控类似更新、新增或是删除的数据库事件。

    高度可定制性

     PostgreSQL的存储过程开发可以使用众多的程序语言,包括Java、Perl、Python、Ruby、Tcl、C/C++和自带的PL/pgSQL,其中的PL/pgSQL与Oracle的PL/SQL很相似,内置了数百个函数,功能从基本的算术计算和字符串处理到加密逻辑计算并与Oracle有高度兼容性。触发器和存储过程可以使用C语言开发并可以作为内部库文件加载至数据库内部,开发上的巨大灵活性扩展了数据库能力。相应地,PostgreSQL也包括一套框架允许开发人员定义和创建他们自己的可在函数中使用数据类型,也可以定义操作符新的处理方式,具有了这样的能力后,PostgreSQL现已具有了各种高级数据类型,包括几何图形、空间地理、网络地址甚至于ISBN/ISSN(国际标准书号/国际标准序列号),这些都可以加入至系统中。

由于有很多的存储过程语言可以使用,这样也产生了很多的库接口,这样允许各种编译型或是解释型的语言在PostgreSQL进行使用,包括Java(JDBC)、ODBC、Perl、Python、Ruby、C、C++、PHP、Lisp、Scheme和Qt等。

二、版权声明

    PostgreSQL 使用PostgreSQL版权声明,它是类似BSD的版权。由于这个经 OSI认证的版权不限制PostgreSQL在商业环境和有 版权的应用程序中使用,因此被公认为是非常有灵活性和对商业应用是友好的。加上有多个公司的支持和源代码归属公共所有, 我们的版权使得PostgreSQL在那些希望在自己的产品里嵌入数据库的厂商中很流行,因为他们不用担心费用、嵌入软件的版权 锁以及版权条款的改变。

三、优势特性

     跨平台能力

PostgreSQL几乎可以所有Unix类操作系统下运行 (根据统计有至少34种平台),自8.0版本以后,在Windows平台下的也使用原生支持方式。

     大数据量环境下的设计

我们使用MVCC模式作为数据存储的策略,这样PostgreSQL可以在大数据量的环境下具有极高的响应性能。一些领先的商业私有数据库供应商基于相同的原因,也使用这种技术。

     图形化的数据库设计和管理工具

有很多高品质的图形化的PostgreSQL管理工具软件,包括开源和商业性质的。在我们的维基网站上有一个清单列出了PostgreSQL相关的图形化工具软件。

      技术特性列表

    下表列出了各个版本中不同功能的支持情况。将光标移至每一个功能名称上时会显示该功能更详细的解释。

  • 后台处理类

  • 性能类

  • 安全类

  • 网络类

  • 多字节/国际化类

  • 平台类

  • 数据类型

  • 函数和触发器类

  • 过程语言类

  • 扩展模块类

后台处理类8.08.18.28.38.49.09.19.29.3
64-bit large objects        Y
Advisory locks  YYYYYYY
ALTER object IF EXISTS       YY
ALTER TABLE ... ADD UNIQUE/PRIMARY KEY USING INDEX      YYY
Autovacuum enabled by default   YYYYYY
Cascading streaming replication       YY
Changing column types (ALTER TABLE .. ALTER COLUMN TYPE)YYYYYYYYY
Checksum on data pages        Y
Column level permissions    YYYYY
Common Table Expressions (WITH RECURSIVE)    YYYYY
Concurrent GiST indexes YYYYYYYY
COPY from/to STDIN/STDOUT        Y
COPY with arbitrary SELECT   YYYYYYY
Crash-safe GiST indexes YYYYYYYY
CREATE TABLE ... (LIKE) with foreign tables, views and composite types       YY
CSV support for COPYYYYYYYYYY
Custom background workers        Y
Default permissions     YYYY
Deferrable unique constraints     YYYY
Disk based FSM    YYYYY
Dollar QuotingYYYYYYYYY
DROP object IF EXISTS  YYYYYYY
Exclusion constraints     YYYY
EXPLAIN (BUFFERS) support     YYYY
Extension package installation      YYY
Foreign data wrappers      YYY
Foreign Tables      YYY
Full code coverage generation support     YYYY
GRANT/REVOKE ON ALL TABLES/SEQUENCES/FUNCTIONS     YYYY
Holdable cursorsYYYYYYYYY
Hot Standby     YYYY
Improved set of JSON functions and operators        Y
INSERT/UPDATE/DELETE RETURNING  YYYYYYY
Integrated autovacuum daemon YYYYYYYY
Join removal support     YYYY
LATERAL clause        Y
Loadable plugin infrastructure for monitoring the planner   YYYYYY
Materialized views        Y
Multiple autovacuum workers   YYYYYY
Multiple input aggregates  YYYYYYY
Multirow VALUES  YYYYYYY
MVCC safe CLUSTER   YYYYYY
Named restore points      YYY
ON COMMIT clause for CREATE TEMPORARY TABLEYYYYYYYYY
ORDER BY NULLS FIRST/LAST   YYYYYY
Parallel pg_dump        Y
Payload support for LISTEN/NOTIFY     YYYY
Per tablespace support for GUCs     YYYY
Per user/database server configuration settings     YYYY
Pg_basebackup tool      YYY
pg_receivexlog tool       YY
Point-in-Time RecoveryYYYYYYYYY
Prefix support for text search synonym dictionary     YYYY
Row-wise comparison  YYYYYYY
SavepointsYYYYYYYYY
SELECT FOR NO KEY UPDATE/SELECT FOR KEY SHARE lock modes        Y
Serializable Snapshot Isolation      YYY
SP-GiST indexes for range types        Y
SQLDA support for ECPG     YYYY
SQL-standard information schemaYYYYYYYYY
SQL standard interval handling    YYYYY
Streaming-only cascading replication        Y
Streaming Replication     YYYY
Support for anonymous shared memory        Y
Synchronous replication      YYY
TABLE statement    YYYYY
Temporary VIEWs YYYYYYYY
Two Phase commit YYYYYYYY
Txid functions   YYYYYY
Typed tables     YYYY
UNNEST/array_agg    YYYYY
Updatable views        Y
Updateable cursors   YYYYYY
Version aware psql    YYYYY
Visibility map    YYYYY
WAL-safe B-Tree IndexesYYYYYYYYY
Warm Standby  YYYYYYY
Window functions    YYYYY
Writable Common Table Expressions      YYY
Writable Foreign Data Wrappers        Y
XML, JSON and YAML output for EXPLAIN     YYYY
性能类8.08.18.28.38.49.09.19.29.3
Asynchronous Commit   YYYYYY
Automatic plan invalidation   YYYYYY
Background Checkpointer       YY
Background WriterYYYYYYYYY
Cross datatype hashing support   YYYYYY
Distributed checkpointing   YYYYYY
Foreign keys marked as NOT VALID      YYY
Full Text Search   YYYYYY
GIN (Generalized Inverted Index) Indexes  YYYYYYY
GIN indexes partial match    YYYYY
GiST (Generalized Search Tree) IndexesYYYYYYYYY
Hashing support for DISTINCT/UNION/INTERSECT/EXCEPT    YYYYY
Hashing support for FULL OUTER JOIN, LEFT OUTER JOIN and RIGHT OUTER JOIN      YYY
Hashing support for NUMERIC   YYYYYY
Heap Only Tuples (HOT)   YYYYYY
Indexes on expressionsYYYYYYYYY
Index-only scans       YY
Index support for IS NULL   YYYYYY
Inlining of SQL-functionsYYYYYYYYY
In-memory Bitmap Indexes YYYYYYYY
K-nearest neighbor GiST support      YYY
Lazy XID allocation   YYYYYY
Multi-core scalability for read-only workloads       YY
Multiple temporary tablespaces   YYYYYY
Non-blocking CREATE INDEX  YYYYYYY
Outer Join reordering  YYYYYYY
Parallel restore    YYYYY
Partial sort capability (top-n sorting)   YYYYYY
SELECT ... FOR UPDATE/SHARE NOWAIT YYYYYYYY
Semi- and Antijoins    YYYYY
Shared row level locking YYYYYYYY
Space-Partitioned GiST Indexes       YY
Synchronized sequential scanning   YYYYYY
Table partitioning YYYYYYYY
TablespacesYYYYYYYYY
Unlogged tables      YYY
WAL Buffer auto-tuning      YYY
安全类8.08.18.28.38.49.09.19.29.3
GSSAPI support   YYYYYY
Large object access controls     YYYY
Native LDAP authentication  YYYYYYY
Native RADIUS authentication     YYYY
Per user/database connection limits YYYYYYYY
ROLES YYYYYYYY
Search+bind mode operation for LDAP authentication     YYYY
security_barrier option on views       YY
Security Service Provider Interface (SSPI)   YYYYYY
SSL certificate validation in libpq    YYYYY
SSL client certificate authentication    YYYYY
SSPI authentication via GSSAPI      YYY
Network8.08.18.28.38.49.09.19.29.3
Full SSL supportYYYYYYYYY
IPv6 SupportYYYYYYYYY
V2 client protocolYYYYYYYYY
V3 client protocolYYYYYYYYY
多字节/国际化类8.08.18.28.38.49.09.19.29.3
Column-level collation support      YYY
Database level Collation    YYYYY
EUC_JIS_2004/ SHIFT_JIS_2004 support   YYYYYY
Multibyte encoding support, incl. UTF8YYYYYYYYY
Multiple language supportYYYYYYYYY
Unicode string literals and identifiers    YYYYY
UTF8 support on Windows YYYYYYYY
平台类8.08.18.28.38.49.09.19.29.3
Microsoft Visual C++ Support   YYYYYY
Native Windows PortYYYYYYYYY
Spinlock support for the SuperH hardware platform     YYYY
Sun Studio compiler on Linux    YYYYY
Windows x64 support     YYYY
数据类型8.08.18.28.38.49.09.19.29.3
Arrays of compound types   YYYYYY
Array supportYYYYYYYYY
ENUM data type   YYYYYY
GUID/UUID data type   YYYYYY
IS0 8601 interval syntax    YYYYY
JSON data type       YY
NULLs in Array  YYYYYYY
Range types       YY
smallserial type       YY
Type modifier support   YYYYYY
XML data type   YYYYYY
函数和触发器类8.08.18.28.38.49.09.19.29.3
ALTER TABLE ENABLE/DISABLE TRIGGER YYYYYYYY
ALTER TABLE / ENABLE REPLICA TRIGGER/RULE   YYYYYY
Column level triggers     YYYY
Event triggers        Y
Function argument names     YYYY
ORDER BY support within aggregates     YYYY
Per function GUC settings   YYYYYY
Per function statistics    YYYYY
RETURN QUERY EXECUTE    YYYYY
RETURNS TABLE    YYYYY
Statement level triggersYYYYYYYYY
Statement level TRUNCATE triggers    YYYYY
Triggers on views      YYY
Variadic functions    YYYYY
WHEN clause for CREATE TRIGGER     YYYY
过程语言类8.08.18.28.38.49.09.19.29.3
CASE in pl/pgsql    YYYYY
CONTINUE statement for PL/pgSQL YYYYYYYY
DO statement for pl/perl     YYYY
DO statement for pl/pgsql     YYYY
EXCEPTION support in PL/pgSQLYYYYYYYYY
EXECUTE USING in PL/pgSQL    YYYYY
FOREACH IN ARRAY in pl/pgsql      YYY
IN/OUT/INOUT parameters for pl/pgsql and PL/SQL YYYYYYYY
Named parametersYYYYYYYYY
Non-superuser language creation   YYYYYY
Number of function arguments increased to 100 YYYYYYYY
pl/pgsql installed by default     YYYY
Polymorphic functionsYYYYYYYYY
Python 3 support for pl/python     YYYY
Qualified function parameters   YYYYYY
RETURN QUERY in pl/pgsql   YYYYYY
ROWS and COST specification for functions   YYYYYY
Scrollable and updatable cursor support for pl/pgsql   YYYYYY
SQLERRM/SQLSTATE for pl/pgsql YYYYYYYY
Unicode object support in PL/python     YYYY
User defined exceptions    YYYYY
Validator function for pl/perl YYYYYYYY
扩展模块类8.08.18.28.38.49.09.19.29.3
contrib/adminpack  YYYYYYY
contrib/auth_delay      YYY
contrib/autoexplain    YYYYY
contrib/btree_gin    YYYYY
contrib/btree_gistYYYYYYYYY
contrib/citext    YYYYY
contrib/dblinkYYYYYYYYY
contrib/dblink asyncronous notification support     YYYY
contrib/dbsizeY废弃废弃废弃废弃废弃废弃废弃废弃
contrib/file_fdw      YYY
contrib/fuzzystrmatchYYYYYYYYY
contrib/hstore  YYYYYYY
contrib/hstore improvements     YYYY
contrib/intarrayYYYYYYYYY
contrib/isn (ISBN)  YYYYYYY
contrib/ltreeYYYYYYYYY
contrib/pageinspect   YYYYYY
contrib/passwordcheck     YYYY
contrib/pg_autovacuumY废弃废弃废弃废弃废弃废弃废弃废弃
contrib/pgbenchYYYYYYYYY
contrib/pg_buffercache YYYYYYYY
contrib/pg_freespacemap  YYYYYYY
contrib/pg_standby   YYYYYY
contrib/pg_stat_statements    YYYYY
contrib/pg_stat_statements improvements       YY
contrib/pgstattupleYYYYYYYYY
contrib/pg_trgmYYYYYYYYY
contrib/pg_trgm regular expressions indexing        Y
contrib/pg_upgrade     YYYY
contrib/pg_xlogdump        Y
contrib/postgres_fdw        Y
contrib/segYYYYYYYYY
contrib/sepgsql      YYY
contrib/sslinfo  YYYYYYY
contrib/tablefuncYYYYYYYYY
contrib/tcn       YY
contrib/tsearch2YYY废弃废弃废弃废弃废弃废弃
contrib/tsearch2 compat wrapper   YYYYYY
contrib/tsearch2 UTF8 support  Y废弃废弃废弃废弃废弃废弃
contrib/unaccent     YYYY
contrib/userlocksYY废弃废弃废弃废弃废弃废弃废弃
contrib/uuid-ossp   YYYYYY
contrib/xml2YYYY废弃废弃废弃废弃废弃

转载于:https://my.oschina.net/liuyuanyuangogo/blog/498486

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值