PostgreSQL 是一個免費開源的物件關聯式資料庫管理系統,採用 PostgreSQL 授權發布,類似於 BSD 或 MIT 授權。
與其他許多開源專案一樣,PostgreSQL 的開發並非由公司或個人管理,而是由一群無私奉獻、無私奉獻的開發者領導,他們自由地工作,或得到商業組織的支持。
它的一些主要特徵是:
出勤率高
透過名為 MVCC(多版本並發存取)的系統,PostgreSQL允許多個進程在不加鎖的情況下寫入同一張表,同時其他進程也可以存取同一張表。這樣,每個使用者都能獲得一致的資料視圖。
PostgreSQL本地提供以下支持:
- 任意精度數字。
- 長度不受限制的文字。
- 幾何圖形(具有各種相關功能)。
- IP地址(IPv4和IPv6)。
- CIDR樣式的地址塊。
- MAC地址。
數組。
此外,使用者還可以建立自己的資料類型,借助PostgreSQL 的 GiST 基礎架構,這些資料類型可以完全建立索引。例如,PostGIS 專案所建立的 GIS 資料類型。
關於PostgreSQL 11.0的新版本
幾天前,PostgreSQL 發布了新版本,版本號碼為 PostgreSQL 11,新增了多項功能,最重要的是修復了多個錯誤。
主要的新穎之處在於,它們專注於管理具有大量數據的數據庫。
改進的分區
PostgreSQL 早已支援分區;分區是指將資料儲存在多個獨立的表中,這些表在邏輯上屬於同一個表。
資料庫使用者看不到這種分佈情況,這種分佈允許資料儲存在多個檔案系統中,並根據資料類型呈現不同的特性。例如,最近的資料儲存在固態硬碟 (SSD) 上,而較舊的資料則儲存在機械硬碟 (HDD) 上。
可以劃分為數據列表或間隔。 現在可以對鍵哈希進行分區以使數據隨機化。
這使得可以在多個存儲中分佈讀取和寫入操作。
現在可以在主表級別上聲明主鍵和外鍵以及索引和触發器,並將它們反映在分區中的所有成員表上。
如果分散鍵發生更改, PostgreSQL現在也可以自動更改分區資料。
分區表的讀取性能也已通過新的分區刪除策略得到了改善。
UPSERT功能現在也適用於分區表。

存儲過程中事務的可用性
存儲過程在PostgreSQL中已經存在很長時間了,但是無法在其中創建事務。 現在有可能。
性能提升
現在,可以利用現今處理器中的眾多核心,並行執行多個操作。
因此,分區表可以並行讀取,但當SELECT查詢包含UNION子句時也可以並行讀取。
索引建立也是並行進行的,其他資料定義語言 ( DDL ) 指令,如CREATE TABLE或CREATE MATERIALIZED VIEW 也是如此。
隨時隨地構建
PostgreSQL提供了一個基於時間的編譯器,它可以最佳化複雜查詢,從而提高執行速度。 PostgreSQL 使用 LLVM 編譯器來實現這一目標。
要啟動它,您必須在設定檔中新增 jit=on或定義會話變數 SET jit=on。
簡化=速度
現在,在使用非空預設值執行ALTER TABLE … ADD COLUMN … DEFAULT … 呼叫時,不再需要重寫整個資料表。這大大提高了該命令的執行速度,尤其是在處理大型表時。
用戶體驗
除了 \q 之外,命令列介面 (psql) 現在還可以識別關鍵字quitty exit來完成這個過程。
要獲取此新版本,您可以訪問以下連結。