PostgreSQL/功能
外觀
最早的 概念檔案 - 出版於 1986 年 - 定義了一個目標,該目標將 PostgreSQL 與其他許多系統區分開來,直到今天:“為資料型別、運算子和訪問方法提供使用者可擴充套件性”。這個目標已經實現。它不僅對使用者可用,即使內部實現也利用這些介面來建立系統元件。
PostgreSQL 實現了一個客戶端/伺服器模型。每個客戶端程序連線到伺服器站點上的一個後端程序。這樣的後端程序是例項的一部分,一個由許多程序組成的組,它們緊密協作並處理資料訪問。PostgreSQL 不會在後端程序或其他任何地方使用執行緒。
- 身份驗證方法:SCRAM-SHA-256、GSSAPI、SSPI、LDAP、RADIUS、證書、PAM
- 角色(使用者和組)授權訪問資料和執行函式
- 事務,具有完整的 ACID 支援和不同的隔離級別
- 儲存點(子事務)
- 多版本併發控制 (MVCC)
- 時間點恢復
- 表和索引的分割槽
- 同步、非同步和邏輯複製
- 雙向複製
- 釋出/訂閱機制
- 在多個 CPU 上並行執行單個查詢
- 豐富的預定義資料型別,例如 JSON
- 支援陣列
- 複合型別(類似於某些程式語言中的記錄),透過行關鍵字構造行
- 檢查約束
- 使用外部索引鍵的引用完整性
- 表繼承
- 檢視、物化檢視、可更新檢視
- 使用者定義的資料型別、運算子和索引訪問方法
- 使用者定義的函式、過程、觸發器和過程語言
- 建立擴充套件介面以建立使用者定義的包。一些公開可用的示例
- 外部資料包裝器用於其他 - PostgreSQL 或非 PostgreSQL - 資料庫或檔案系統
- PostGIS:用於空間和地理物件的擴充套件
- hstore:鍵值儲存
- 高度符合 SQL 標準:177 個功能中的 170 個
- 外連線、聯合、交集、排除
- 分組依據、分組集、立方、彙總
- 公用表表達式 (CTE)
- 遞迴查詢、圖查詢
- 視窗函式、分析函式