關於 
什麼是 PostgreSQL?
PostgreSQL 是一個強大、開放原始碼的物件關係型資料庫系統,它使用並擴展了 SQL 語言,並結合了許多功能,可以安全地儲存和擴展最複雜的資料工作負載。 PostgreSQL 的起源可以追溯到 1986 年,是加州大學柏克萊分校的 POSTGRES 專案的一部分,並且在核心平台上擁有超過 35 年的積極開發歷史。
PostgreSQL 以其經過驗證的架構、可靠性、資料完整性、強大的功能集、可擴展性以及軟體背後的開源社群的奉獻精神而享有盛譽,可以持續提供高效能和創新的解決方案。 PostgreSQL 可以在 所有主要作業系統上執行,自 2001 年以來一直符合 ACID 標準,並且具有強大的附加元件,例如流行的 PostGIS 地理空間資料庫擴充程式。 難怪 PostgreSQL 已成為許多人和組織選擇的開源關係型資料庫。
使用 PostgreSQL 入門從未如此簡單 - 選擇您要建置的專案,讓 PostgreSQL 安全且穩健地儲存您的資料。
為什麼要使用 PostgreSQL?
PostgreSQL 具有 許多功能,旨在幫助開發人員建置應用程式,管理員保護資料完整性並建置容錯環境,並幫助您管理資料,無論資料集有多大或多小。 除了 免費和開源之外,PostgreSQL 還具有高度的可擴展性。 例如,您可以定義自己的資料類型、建構自訂函數,甚至可以使用 不同的程式語言編寫程式碼,而無需重新編譯資料庫!
PostgreSQL 嘗試符合 SQL 標準,前提是此類符合性不會與傳統功能相矛盾,或可能導致不良的架構決策。 支援 SQL 標準要求的許多功能,但有時語法或函數略有不同。 預計隨著時間的推移,將進一步朝著一致性邁進。 截至 2023 年 9 月發布的 16 版本,PostgreSQL 符合 SQL:2023 核心一致性的 177 個強制功能中的至少 170 個。 截至撰寫本文時,沒有任何關係型資料庫完全符合此標準。
以下是 PostgreSQL 中各種功能的不完整列表,每個主要版本都會添加更多功能。
-
資料類型
- 基本類型:整數、數值、字串、布林值
- 結構化:日期/時間、陣列、範圍/多重範圍、UUID
- 文件:JSON/JSONB、XML、鍵值 (Hstore)
- 幾何:點、線、圓、多邊形
- 自訂:複合類型、自訂類型
-
資料完整性
- UNIQUE、NOT NULL
- 主鍵
- 外鍵
- 排除約束
- 顯式鎖定、建議鎖定
-
並行性、效能
- 索引:B 樹、多列、表達式、部分
- 進階索引:GiST、SP-Gist、KNN Gist、GIN、BRIN、涵蓋索引、布隆過濾器
- 複雜的查詢計劃器/最佳化器、僅索引掃描、多列統計資訊
- 交易、巢狀交易(透過儲存點)
- 多版本並行控制 (MVCC)
- 並行化讀取查詢和建構 B 樹索引
- 表分割
- SQL 標準中定義的所有交易隔離等級,包括可序列化
- 表達式的即時 (JIT) 編譯
-
可靠性、災難復原
- 預寫日誌 (WAL)
- 複製:非同步、同步、邏輯
- 時間點復原 (PITR)、活動備用伺服器
- 表空間
-
安全性
- 驗證:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、憑證等
- 強大的存取控制系統
- 列和列層級安全性
- 使用憑證和其他方法的多重身份驗證
-
可擴展性
- 儲存的函數和程序
- 程序語言: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 使用者聯繫。
我們的使用者 愛我們
社交新聞閱讀器 NewsBlur 依賴 Postgres 來儲存數百萬個網站和訂閱。 多年來堅實可靠。
Samuel Clay,NewsBlur
Postgres 是一個真正了不起的資料庫。 當我們開始開發 Launchpad 時,我不確定它是否能夠勝任這項工作。 我完全錯了。 它在各方面都堅固、快速且專業。
Mark Shuttleworth,Ubuntu Linux
[我們的客戶] 希望我們的軟體具有高效能和高可用性,而 SQL 資料庫引擎是其中的核心部分。 我們發現 PostgreSQL 確實能夠勝任這項任務。
Maksym Sobolyev,SippySoft Inc.
Node.js 和其他伺服器端 JavaScript 框架可以從 PostgreSQL 的安全性和穩健性中受益,同時仍然以他們喜歡的無綱要格式儲存資料。
Matt Soldo,Heroku
沒有統計資訊的資料庫專案是什麼?
35 年以上的開發經驗
700 多位貢獻者
59,000 多次提交
70 多個本地使用者群組
1,700,000 多行 C 語言程式碼
700 多個活動
數百萬滿意的使用者
無限量的資料儲存