關於 
什麼是 PostgreSQL?
PostgreSQL 是一個功能強大、開源的物件關係資料庫系統,它使用並擴充套件了 SQL 語言,並結合了許多功能,可以安全地儲存和擴充套件最複雜的資料負載。PostgreSQL 的起源可以追溯到 1986 年,當時是加州大學伯克利分校 POSTGRES 專案的一部分,該核心平臺已有近 40 年的活躍開發歷史。
PostgreSQL 以其成熟的架構、可靠性、資料完整性、強大的功能集、可擴充套件性以及軟體背後開源社群致力於持續提供高效能和創新解決方案的熱情而贏得了良好的聲譽。PostgreSQL 執行在 所有主流作業系統 上,自 2001 年以來一直符合 ACID 標準,並且擁有強大的附加元件,例如流行的 PostGIS 地理空間資料庫擴充套件。因此,PostgreSQL 成為許多個人和組織的開源關係資料庫首選也就不足為奇了。
開始使用 PostgreSQL 從未如此簡單 - 選擇一個你想構建的專案,讓 PostgreSQL 安全穩健地儲存你的資料。
為什麼要使用 PostgreSQL?
PostgreSQL 附帶 許多功能,旨在幫助開發人員構建應用程式、管理員保護資料完整性並構建容錯環境,並幫助您管理資料,無論資料集是大是小。除了 免費和開源 之外,PostgreSQL 還具有高度的可擴充套件性。例如,您可以定義自己的資料型別,構建自定義函式,甚至可以在不重新編譯資料庫的情況下使用 不同的程式語言 編寫程式碼!
PostgreSQL 努力符合 SQL 標準,只要這種符合性不與傳統功能衝突,或可能導致糟糕的架構決策。SQL 標準所要求的許多功能都得到了支援,儘管有時語法或函式略有不同。預計隨著時間的推移,將進一步朝著符合標準的方向發展。截至 2025 年 9 月釋出的 18 版,PostgreSQL 符合 SQL:2023 核心標準中 177 項強制性功能中的至少 170 項。截至撰寫本文時,沒有關係資料庫完全符合此標準。
以下是 PostgreSQL 中各種功能的不完全列表,每個 主要版本 都會增加更多功能
-
資料型別
- 基本型別:整數、數值、字串、布林值
- 結構化:日期/時間、陣列、範圍/多範圍、UUID
- 文件:JSON/JSONB、XML、鍵值(Hstore)
- 幾何:點、線、圓、多邊形
- 自定義:複合型別、自定義型別
-
資料完整性
- UNIQUE、NOT NULL
- 主鍵
- 外部索引鍵
- 排他約束
- 顯式鎖、諮詢鎖
-
併發、效能
- 索引:B-tree、多列、表示式、部分索引
- 高階索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、覆蓋索引、Bloom 過濾器
- 複雜的查詢規劃器/最佳化器、僅索引掃描、多列統計資訊
- 事務、巢狀事務(透過儲存點)
- 多版本併發控制(MVCC)
- 讀取查詢和 B-tree 索引構建的並行化
- 表分割槽
- SQL 標準中定義的所有事務隔離級別,包括可序列化
- 表示式的即時(JIT)編譯
- 非同步 I/O (AIO)
-
可靠性、災難恢復
- 寫前日誌(WAL)
- 複製:非同步、同步、邏輯
- 時間點恢復(PITR)、活動備用
- 表空間
-
安全
- 身份驗證:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、證書、OAuth 2.0 等
- 強大的訪問控制系統
- 列和行級安全性
- 多因素身份驗證(透過證書和附加方法)
-
可擴充套件性
- 儲存函式和過程
- 過程語言:PL/pgSQL、Perl、Python 和 Tcl。透過擴充套件還有其他語言可用,例如 Java、JavaScript (V8)、R、Lua 和 Rust
- SQL/JSON 建構函式、查詢函式、路徑表示式和 JSON_TABLE
- 外部資料包裝器:使用標準的 SQL 介面連線到其他資料庫或流
- 可自定義的表儲存介面
- 許多提供附加功能的擴充套件,包括 PostGIS
-
國際化、文字搜尋
- 支援國際字元集,例如透過 ICU 排序規則
- 不區分大小寫和不區分重音的排序規則
- 全文搜尋
您可以在 PostgreSQL 文件 中發現更多功能。此外,PostgreSQL 具有高度的可擴充套件性:許多功能(如索引)都定義了 API,以便您可以擴充套件 PostgreSQL 來解決您的挑戰。
PostgreSQL 已被證明在它能夠管理的資料量以及它能夠容納的併發使用者數量方面都具有高度的可擴充套件性。生產環境中存在活躍的 PostgreSQL 叢集,它們管理著數 TB 的資料,還有專門的系統管理著 PB 級資料。
有疑問嗎?
關於 PostgreSQL 的任何疑問,首先要查閱其 世界聞名的文件,其中深入介紹瞭如何使用 PostgreSQL。
我們還有許多 郵件列表,您可以在其中聯絡並參與 社群。還有許多 活動 和 本地使用者組,您可以在其中與其他 PostgreSQL 使用者建立聯絡。
我們的使用者 我們
我們選擇 Postgres 作為 Morph Labs 的主要資料庫,因為它為我們在網格環境中執行資料庫提供了最佳解決方案。
Guy Naor,CTO,Morph Labs
在之前的解決方案中,我們發現難以支援超過 50GB 的資料庫。現在,由於 PostgreSQL,我們輕鬆地處理著 400GB+ 資料和數億條記錄的資料庫……這使我們在市場上脫穎而出,並在我們不斷增長的收入中發揮了主要作用。
Joshua Marsh,Listfusion
Centroy 從一開始就在使用 PostgreSQL。我們希望擁有能夠承受高強度峰值工作負載的可擴充套件性,以及內建功能,例如叢集,以在多個地理位置引入更高級別的保護。
Andrew Homer,創始人,Centroy
PostgreSQL 9.3 提供了作為應用程式開發人員可以立即使用的功能:更好的 JSON 功能、正則表示式索引、使用 Postgres 外部資料包裝器輕鬆聯合資料庫……
Jonathan S. Katz,VenueBook
沒有統計資料的資料庫專案算什麼?
35+ 年開發
725+ 貢獻者
61,000+ 次提交
70+ 本地使用者組
1,780,000+ 行 C 程式碼
720+ 場活動
數百萬滿意使用者
∞ 儲存資料