日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

事务内容postgresql pgbench

發(fā)布時間:2025/3/21 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 事务内容postgresql pgbench 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在寫這篇文章之前,xxx已經(jīng)寫過了幾篇關(guān)于改事務內(nèi)容主題的文章,想要了解的朋友可以去翻一下之前的文章

????pgbench is a benchmarking tool for PostgreSQL ,pgbench是postgresql自帶的一個性能基準測試工具。

????可以通過pgbench --help看一下參數(shù)的相關(guān)信息

????Usage:
? pgbench [OPTIONS]... [DBNAME]

????Initialization options:
? -i?????????? invokes initialization mode
? -F NUM?????? fill factor
? -s NUM?????? scaling factor

????Benchmarking options:
? -c NUM?????? number of concurrent database clients (default: 1)
? -C?????????? establish new connection for each transaction
? -D VARNAME=VALUE
?????????????? define variable for use by custom script
? -f FILENAME? read transaction script from FILENAME
? -j NUM?????? number of threads (default: 1)
? -l?????????? write transaction times to log file
? -M {simple|extended|prepared}
?????????????? protocol for submitting queries to server (default: simple)
? -n?????????? do not run VACUUM before tests
? -N?????????? do not update tables "pgbench_tellers" and "pgbench_branches"
? -r?????????? report average latency per command
? -s NUM?????? report this scale factor in output
? -S?????????? perform SELECT-only transactions
? -t NUM?????? number of transactions each client runs (default: 10)
? -T NUM?????? duration of benchmark test in seconds
? -v?????????? vacuum all four standard tables before tests

????Common options:
? -d?????????? print debugging output
? -h HOSTNAME? database server host or socket directory
? -p PORT????? database server port number
? -U USERNAME? connect as specified database user
? --help?????? show this help, then exit
? --version??? output version information, then exit

????初始化:scale為10,pgbench_accounts記錄有100W,

????pgbench -i -s 10 pgbench -h 127.0.0.1 -p 1931 -U testuser

????這里初始化會創(chuàng)立4張表,如下

?????Schema |?????? Name?????? | Type? |? Owner?? |? Size? | Description?
--------+------------------+-------+----------+--------+-------------
?public | pgbench_accounts | table | testuser | 130 MB |?
?public | pgbench_branches | table | testuser | 168 kB |?
?public | pgbench_history? | table | testuser | 960 kB |?
?public | pgbench_tellers? | table | testuser | 456 kB |

????測試:100個client并發(fā),每一個有100個事務

????pgbench? -c 100 -t 100 pgbench
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 100
number of threads: 1
number of transactions per client: 100
number of transactions actually processed: 10000/10000
tps = 114.339158 (including connections establishing)? --包括網(wǎng)絡開銷的事務數(shù)
tps = 114.643324 (excluding connections establishing)? --不包括網(wǎng)絡開銷的事務數(shù)

每日一道理
我拽著春姑娘的衣裙,春姑娘把我?guī)У搅司G色的世界里。

????pgbench? -c 100 -t 100 -j 100 pgbench
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 100
number of threads: 100
number of transactions per client: 100
number of transactions actually processed: 10000/10000
tps = 134.473603 (including connections establishing)
tps = 134.616838 (excluding connections establishing)

????這里注意-c必須是-j的倍數(shù),也就是client是threads的倍數(shù)。

????pgbench? -c 100? -j 100 -T 10 pgbench
starting vacuum...end.
transaction type: TPC-B (sort of)
scaling factor: 10
query mode: simple
number of clients: 100
number of threads: 100
duration: 10 s
number of transactions actually processed: 2144
tps = 209.617862 (including connections establishing)
tps = 211.282453 (excluding connections establishing)

????注意:-t和-T不能同時使用,

????腳本的內(nèi)容:

????\set nbranches :scale
\set ntellers 10 * :scale
\set naccounts 100000 * :scale
\setrandom aid 1 :naccounts
\setrandom bid 1 :nbranches
\setrandom tid 1 :ntellers
\setrandom delta -5000 5000

????BEGIN;
UPDATE pgbench_accounts SET abalance = abalance + :delta WHERE aid = :aid;
SELECT abalance FROM pgbench_accounts WHERE aid = :aid;
UPDATE pgbench_tellers SET tbalance = tbalance + :delta WHERE tid = :tid;
UPDATE pgbench_branches SET bbalance = bbalance + :delta WHERE bid = :bid;
INSERT INTO pgbench_history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
END;

????舉例測試一下呆板insert的速度有多快

????insertsize.sql內(nèi)容:create table data(filler text);

????insert-size.sql內(nèi)容:insert into data (filler) values (repeat('X',:scale));

????$psql -d pgbench -f insertsize.sql?

????$pgbench -s 100 -c 10 -t 10000 pgbench -f insert-size.sql?
starting vacuum...end.
transaction type: Custom query
scaling factor: 100
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 10000
number of transactions actually processed: 100000/100000
tps = 608.144907 (including connections establishing)
tps = 608.234303 (excluding connections establishing)

文章結(jié)束給大家分享下程序員的一些笑話語錄: 手機終究會變成PC,所以ip會比wm更加暢銷,但是有一天手機強大到一定程度了就會發(fā)現(xiàn)只有wm的支持才能完美享受。就好比樹和草,草長得再高也是草,時間到了條件成熟了樹就會竄天高了。www.ishuo.cn

轉(zhuǎn)載于:https://www.cnblogs.com/jiangu66/archive/2013/05/14/3078668.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的事务内容postgresql pgbench的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。