本文介紹了PolarDB for PostgreSQL 14與同類PostgreSQL 14雲原生資料庫的OLTP負載效能測試結果。
簡介
相對於同類PostgreSQL雲原生資料庫,PolarDB PostgreSQL版在以下幾方面進行了最佳化,提升了整體效能:
- 採用了領先硬體技術,包括使用3DXpoint儲存介質的Optane儲存卡、NVMeSSD和RoCE RDMA網路等。
- 基於新的硬體,實現了一整套在使用者態啟動並執行IO和網路通訊協定棧,獲得了更高的效能、更低的延遲。
- 通過Polar CSN(Commit Sequence Number)技術,將原生PostgreSQL xid事務替換為單調遞增的64位整型來提升高並發下OLTP效能。
- 藉助預讀、預擴充、rel_size_cache技術,可以有效減少IO讀寫次數,提升效能。
說明 具體測試步驟,請參見效能測試方法(OLTP)。
測試環境與規格
PolarDB for PostgreSQL 14和同類PostgreSQL 14雲原生資料庫的環境和規格如下表所示:
| 說明 | PolarDB for PostgreSQL 14 | 同類PostgreSQL雲原生資料庫 |
| 核心數+記憶體 | 8核 64 GB | 8核 64 GB |
| 並發數 | 256 | 256 |
| PostgreSQL版本 | 14 | 14 |
| 磁碟效能等級 | PSL5 | 預設配置 |
說明 關於核心參數,PolarDB for PostgreSQL 14和同類PostgreSQL 14雲原生資料庫的參數均採用預設參數。
測試Workload說明
在Sysbench中,有七類情境,包括oltp_insert、oltp_point_select、oltp_read_only、oltp_read_write、oltp_update_index、oltp_update_non_index、oltp_write_only。各種情境的測試內容說明如下:
| 參數 | 情境 | 測試內容 |
| 寫情境 | oltp_insert | 插入表。 |
| oltp_update_index | 更新帶索引的表。 | |
| oltp_update_non_index | 更新不帶索引的表。 | |
| oltp_write_only | 插入、更新、刪除表混合測試。 | |
| 讀情境 | oltp_point_select | 點查詢。 |
| oltp_read_only | 點查詢+範圍查詢。 | |
| 讀寫混合 | oltp_read_write | oltp_write_only+oltp_read_only混合測試。 |
衡量指標
TPS(Transactions Per Second):即資料庫每秒執行的事務數,以COMMIT成功次數為準。
測試資料量
本次實驗測試資料量如下表所示:
| 參數 | 說明 |
| 表數目 | 8 |
| 行數 | 64,000,000 |
| 總資料量 | 128 GB |
效能結果
- 寫情境

TPS/執行個體類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14資料庫 oltp_insert 26894.32 12787.40 oltp_update_index 26794.94 8112.62 oltp_update_non_index 27799.49 10037.60 oltp_write_only 10254.72 4227.12 - 讀情境

TPS/執行個體類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14資料庫 oltp_point_select 87774.29 26358.05 oltp_read_only 3421.84 1489.13 - 讀寫混合情境

TPS/執行個體類型 PolarDB for PostgreSQL 14 同類PostgreSQL 14資料庫 oltp_read_write 1953.10 846.73