作者 | 葉正盛
隨著數據量爆炸性的增長,資料庫類產品創新層出不窮,為了更好的做技術選型參考,筆者對國內主流 8 種資料庫進行了 TPC-H(數據分析)性能評測,被測試的資料庫包括:MySQL、PostgreSQL、Oracle、達夢、ClickHouse、Doris、Starrocks、DuckDB。
測試方法
TPC-H:國際資料庫標準測試組織 TPC 推出的面向決策支持系統的資料庫方法,主要用於數據分析場景性能評測,TPC-H 總共需要運行 22 條數據分析型 SQL。本次測試屬於 TPC-H 自由測試,僅測試查詢 SQL,沒有執行更新和事務。
數據集:TPC-H v3.0.1 測試數據集,200GB(非報告標準 size)。
計時方法:統計每條 SQL 執行時間,全部累加。設置 SQL 最長執行時間為 300 秒 (5 分鐘),如果執行出錯或者超時,則本條 SQL 時間按 600 秒計算。
測試硬體
為了公平起見,本次 TPC-H 測試使用了完全相同的硬體,所有產品都是單機部署,重點是測試各個產品的單機處理能力。
1 台阿里雲 ECSi4r.4xlarge
處理器:16 核 2.7 GHz 主頻的 Intel () Xeon () 可擴展處理器(Ice Lake ),
內存:128GB
硬碟:1 塊本地 Nvme SSD,空間 894GB
作業系統:CentOS7.9
測試結論
接下來詳細描述 TPC-H 測試方法和 8 種資料庫的測試成績
TPC-H 數據模型簡介
TPC-H 主要模擬供應商和採購商之間的訂單交易,模型總共 8 張表
region:區域表,固定 5 條記錄
nation:國家表,固定 25 條記錄
supplier:供應商表,數據量因子 *10000 條記錄
customer:客戶表,數據量因子 *150000 條記錄
part:商品表,數據量因子 *200000 條記錄
partsupp:供應商物件表:數據量因子 *800000 條記錄
orders:訂單表,數據量因子 *1500000 條記錄
lineitem:訂單明細表,數據量因子 *6000000 條記錄(最大的表,占總數據率 70%)
region:區域表,固定 5 條記錄
nation:國家表,固定 25 條記錄
supplier:供應商表,數據量因子 *10000 條記錄
customer:客戶表,數據量因子 *150000 條記錄
part:商品表,數據量因子 *200000 條記錄
partsupp:供應商物件表:數據量因子 *800000 條記錄
orders:訂單表,數據量因子 *1500000 條記錄
lineitem:訂單明細表,數據量因子 *6000000 條記錄(最大的表,占總數據率 70%)
TPC-H 測試的數據量大小可以任意指定,本次測試採用了 200GB 的規模,最大的 lineitem 表數據量約 12 億條 (200*6000000)。
模型建表
以下是 MySQL 語法參考,其他資料庫可以根據語法修改