PostgreSQL詳細介紹
- 一、什么是PostgreSQL?
- 二、為什么要使用PostgreSQL?
- 三、PostgreSQL功能列表
- 3.1 數據類型
- 3.2 數據完整性
- 3.3 并發,性能
- 3.4 可靠性、災難恢復
- 3.5 安全
- 3.6 可擴展性
- 3.7 國際化,文本搜索
- 四、參考資料
關于PostgreSQL安裝詳細步驟請參考:【PostgreSQL】Windows安裝PostgreSQL數據庫圖文詳細教程
一、什么是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的179個強制性特性中的170個:2023核心一致性。截至本文撰寫之時,沒有一個關系數據庫完全符合此標準。
三、PostgreSQL功能列表
以下是PostgreSQL中各種功能的詳盡列表,每個主要版本都會添加更多功能:
3.1 數據類型
- 基本類型: Integer, Numeric, String, Boolean
- 結構化: Date/Time, Array, Range / Multirange, UUID
- 文檔: JSON/JSONB, XML, Key-value (Hstore)
- 幾何體:Point, Line, Circle, Polygon
- 自定義:Composite, Custom Types
3.2 數據完整性
- 唯一,不為NULL
- 主鍵
- 外鍵
- 排除限制
- 顯式鎖、咨詢鎖
3.3 并發,性能
- 索引:B-樹、多列、表達式、分部
- 高級索引:GiST,SP GiST,KNN GiST,GIN,BRIN,覆蓋索引,Bloom過濾器
- 復雜的查詢規劃器/優化器、僅索引掃描、多列統計信息
- 事務,嵌套事務(通過保存點)
- 多版本并發控制(MVCC)
- 讀取查詢的并行化與B樹索引的構建
- 表分割
- SQL標準中定義的所有事務隔離級別,包括Serializable
- 表達式的實時(JIT)編譯
3.4 可靠性、災難恢復
- 預寫日志記錄(WAL)
- 復制:異步、同步、邏輯
- 時間點恢復(PITR),活動備用
- 表空間
3.5 安全
- 身份驗證:GSSAPI、SSPI、LDAP、SCRAM-SHA-256、證書等
- 堅固訪問控制系統
- 列和行級別的安全性
- 使用證書的多因素身份驗證和一種附加方法
3.6 可擴展性
- 存儲的函數和過程
- 過程語言:PL/pgSQL、Perl、Python和Tcl。通過擴展還可以使用其他語言,例如Java、JavaScript(V8)、R、Lua和Rust
- SQL/JON-構造函數和路徑表達式
- 外部數據包裝器:使用標準SQL接口連接到其他數據庫或流
- 可自定義的表格存儲界面
- 許多提供附加功能的擴展,包括PostGIS
3.7 國際化,文本搜索
- 支持國際字符集,例如通過ICU排序
- 不區分大小寫和不區分重音的排序規則
- 全文搜索
當然你也可以在PostgreSQL文檔中發現更多功能。此外,PostgreSQL具有高度的可擴展性:許多功能,如索引,都定義了API,因此您可以使用PostgreSQL進行構建以解決您的挑戰。
PostgreSQL已經被證明是高度可擴展的,無論是在它可以管理的數據數量上,還是在它可以容納的并發用戶數量上。生產環境中有活動的PostgreSQL集群,可以管理許多TB的數據,也有專門的系統,可以管理PB的數據。
四、參考資料
PostgreSQL官網:https://www.postgresql.org/
本文完結!