本章節:基於linux系統、PostgreSQL-10單機環境下演示基準測試
一. 測試環境準備
1. 切換到安裝PostgreSQL自帶的用戶:postgres
su - postgres
2. 進入sql控制檯
psql
接着輸入數據庫賬戶postgres的密碼—[如果你沒改過密碼,那postgres的默認密碼爲postgres]
3. 創建名爲“testbench”的測試庫
create database testbench;
二. 用pgbench執行基準測試
1. 進入postgresql的bin目錄
cd /usr/pgsql-10/bin
2. 按這2個參數初始化表數據:
./pgbench -i -F100 -s10 -U postgres -p 5432 -h 127.0.0.1 testbench
此時可能要輸一次密碼,輸入數據庫賬戶postgres的密碼即可
3. 按這3個參數執行基準測試:1個線程、1個用戶、運行60秒
./pgbench -r -j1 -c1 -T60 -U postgres -h 127.0.0.1 testbench
此時可能要輸一次密碼,輸入數據庫賬戶postgres的密碼即可
三. 基準測試結果分析
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 10
query mode: simple
number of clients: 1
number of threads: 1
duration: 60 s
number of transactions actually processed: 29383
latency average = 2.042 ms
tps = 489.714266 (including connections establishing)
tps = 489.762161 (excluding connections establishing)
script statistics:
- statement latencies in milliseconds:
0.003 \set aid random(1, 100000 * :scale)
0.001 \set bid random(1, 1 * :scale)
0.001 \set tid random(1, 10 * :scale)
0.000 \set delta random(-5000, 5000)
0.044 BEGIN;
0.196 UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
0.146 SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
0.159 UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
0.144 UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
0.115 INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
1.234 END;