os: centos 7.4
db: postgresql 10.10

版本

# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
#
# su - postgres
Last login: Sat Oct 26 22:55:25 CST 2019 on pts/0
$
$ psql -c "select version();"version
----------------------------------------------------------------------------------------------------------PostgreSQL 10.10 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit
(1 row)

create partition table

# su - postgres
$ psqlpostgres=#\c pgbenchdbpgbenchdb=# create table tmp_t1(id           varchar(32) not null,message_id   varchar(32),persion_id   varchar(32) not null,del_flag     int4,create_time  timestamp
)
;pgbenchdb=# create index idx_tmp_t1_x1 on tmp_t1(id);
create index idx_tmp_t1_x2 on tmp_t1(persion_id);pgbenchdb=# select create_hash_partitions('tmp_t1'::regclass,'persion_id',10,false);pgbenchdb=# select partition_table_concurrently('tmp_t1'::regclass,1000,1.0);pgbenchdb=# select set_enable_parent('tmp_t1'::regclass, false);pgbenchdb=# \dList of relationsSchema |             Name              | Type  |  Owner
--------+-------------------------------+-------+----------public | pathman_cache_stats           | view  | postgrespublic | pathman_concurrent_part_tasks | view  | postgrespublic | pathman_config                | table | postgrespublic | pathman_config_params         | table | postgrespublic | pathman_partition_list        | view  | postgrespublic | pgbench_accounts              | table | postgrespublic | pgbench_branches              | table | postgrespublic | pgbench_history               | table | postgrespublic | pgbench_tellers               | table | postgrespublic | tmp_t0                        | table | postgrespublic | tmp_t1                        | table | postgrespublic | tmp_t1_0                      | table | postgrespublic | tmp_t1_1                      | table | postgrespublic | tmp_t1_2                      | table | postgrespublic | tmp_t1_3                      | table | postgrespublic | tmp_t1_4                      | table | postgrespublic | tmp_t1_5                      | table | postgrespublic | tmp_t1_6                      | table | postgrespublic | tmp_t1_7                      | table | postgrespublic | tmp_t1_8                      | table | postgrespublic | tmp_t1_9                      | table | postgres
(21 rows)pgbenchdb=# \d+ tmp_t1Table "public.tmp_t1"Column    |            Type             | Collation | Nullable | Default | Storage  | Stats target | Description
-------------+-----------------------------+-----------+----------+---------+----------+--------------+-------------id          | character varying(32)       |           | not null |         | extended |              | message_id  | character varying(32)       |           |          |         | extended |              | persion_id  | character varying(32)       |           | not null |         | extended |              | del_flag    | integer                     |           |          |         | plain    |              | create_time | timestamp without time zone |           |          |         | plain    |              |
Indexes:"idx_tmp_t1_x1" btree (id)"idx_tmp_t1_x2" btree (persion_id)
Child tables: tmp_t1_0,tmp_t1_1,tmp_t1_2,tmp_t1_3,tmp_t1_4,tmp_t1_5,tmp_t1_6,tmp_t1_7,tmp_t1_8,tmp_t1_9

可以看到 tmp_t1_X 的10个表

pgbenchdb=# select * from pathman_config;partrel |    expr    | parttype | range_interval
---------+------------+----------+----------------tmp_t1  | persion_id |        1 |
(1 row)pgbenchdb=# select * from pathman_config_params;partrel | enable_parent | auto | init_callback | spawn_using_bgw
---------+---------------+------+---------------+-----------------tmp_t1  | f             | t    |               | f
(1 row)pgbenchdb=# select * from pathman_partition_list;parent | partition | parttype |    expr    | range_min | range_max
--------+-----------+----------+------------+-----------+-----------tmp_t1 | tmp_t1_0  |        1 | persion_id |           | tmp_t1 | tmp_t1_1  |        1 | persion_id |           | tmp_t1 | tmp_t1_2  |        1 | persion_id |           | tmp_t1 | tmp_t1_3  |        1 | persion_id |           | tmp_t1 | tmp_t1_4  |        1 | persion_id |           | tmp_t1 | tmp_t1_5  |        1 | persion_id |           | tmp_t1 | tmp_t1_6  |        1 | persion_id |           | tmp_t1 | tmp_t1_7  |        1 | persion_id |           | tmp_t1 | tmp_t1_8  |        1 | persion_id |           | tmp_t1 | tmp_t1_9  |        1 | persion_id |           |
(10 rows)

pgbench insert

# su - postgres
$ vim /var/lib/pgsql/scripts/par_insert.sql\set v_id          random(1, 10000000)
\set v_message_id  random(1, 10000000)
\set v_persion_id  random(1, 100000)
\set v_del_flag    random(1, 2)
BEGIN;
INSERT INTO tmp_t1 (id, message_id, persion_id, del_flag, create_time) VALUES (:v_id, :v_message_id, :v_persion_id, :v_del_flag, CURRENT_TIMESTAMP);
END;
# su - postgres
$ /usr/pgsql-10/bin/pgbench -r -j 2 -c 4 -T 60 -P 1 -f /var/lib/pgsql/scripts/par_insert.sql pgbenchdbstarting vacuum...end.
progress: 1.0 s, 251.9 tps, lat 15.511 ms stddev 62.672
progress: 2.0 s, 610.1 tps, lat 6.549 ms stddev 1.835
progress: 3.0 s, 510.0 tps, lat 7.846 ms stddev 31.400transaction type: /var/lib/pgsql/scripts/par_insert.sql
scaling factor: 1
query mode: simple
number of clients: 4
number of threads: 2
duration: 60 s
number of transactions actually processed: 27940
latency average = 8.597 ms
latency stddev = 25.118 ms
tps = 465.081992 (including connections establishing)
tps = 465.159698 (excluding connections establishing)
script statistics:- statement latencies in milliseconds:0.007  \set v_id          random(1, 10000000)0.003  \set v_message_id  random(1, 10000000)0.002  \set v_persion_id  random(1, 100000)0.002  \set v_del_flag    random(1, 2)0.968  BEGIN;1.915  INSERT INTO tmp_t1 (id, message_id, persion_id, del_flag, create_time) VALUES (:v_id, :v_message_id, :v_persion_id, :v_del_flag, CURRENT_TIMESTAMP);5.704  END;

pgbench select

# su - postgres
$ vim /var/lib/pgsql/scripts/par_select.sql\set v_persion_id  random(1, 100000)
\set v_del_flag    random(1, 2)
BEGIN;
select * from tmp_t1 where persion_id= cast(:v_persion_id  as varchar) and del_flag = :v_del_flag ;
END;
# su - postgres
$ /usr/pgsql-10/bin/pgbench -r -j 2 -c 4 -T 60 -P 1 -f /var/lib/pgsql/scripts/par_select.sql pgbenchdbstarting vacuum...end.
progress: 1.0 s, 3958.9 tps, lat 0.999 ms stddev 15.134
progress: 2.0 s, 6866.5 tps, lat 0.578 ms stddev 6.047
progress: 3.0 s, 6048.6 tps, lat 0.623 ms stddev 9.110transaction type: /var/lib/pgsql/scripts/par_select.sql
scaling factor: 1
query mode: simple
number of clients: 4
number of threads: 2
duration: 60 s
number of transactions actually processed: 398795
latency average = 0.602 ms
latency stddev = 6.191 ms
tps = 6620.943141 (including connections establishing)
tps = 6621.271800 (excluding connections establishing)
script statistics:- statement latencies in milliseconds:0.001  \set v_persion_id  random(1, 100000)0.000  \set v_del_flag    random(1, 2)0.121  BEGIN;0.358  select * from tmp_t1 where persion_id= cast( :v_persion_id as varchar) and del_flag = :v_del_flag ;0.124  END;

pgbench update

# su - postgres
$ vim /var/lib/pgsql/scripts/par_update.sql\set v_persion_id  random(1, 100000)
\set v_del_flag    random(1, 2)
BEGIN;
update tmp_t1 set create_time=CURRENT_TIMESTAMP,del_flag=:v_del_flag where persion_id= cast(:v_persion_id as varchar) and del_flag = :v_del_flag ;
END;
# su - postgres
$ /usr/pgsql-10/bin/pgbench -r -j 2 -c 4 -T 60 -P 1 -f /var/lib/pgsql/scripts/par_update.sql pgbenchdbstarting vacuum...end.
progress: 1.0 s, 2331.2 tps, lat 1.666 ms stddev 3.279
progress: 2.0 s, 2169.6 tps, lat 1.747 ms stddev 3.432
progress: 3.0 s, 712.9 tps, lat 6.008 ms stddev 38.154transaction type: /var/lib/pgsql/scripts/par_update.sql
scaling factor: 1
query mode: simple
number of clients: 4
number of threads: 2
duration: 60 s
number of transactions actually processed: 152952
latency average = 1.569 ms
latency stddev = 14.203 ms
tps = 2548.997169 (including connections establishing)
tps = 2549.207265 (excluding connections establishing)
script statistics:- statement latencies in milliseconds:0.002  \set v_persion_id  random(1, 100000)0.000  \set v_del_flag    random(1, 2)0.249  BEGIN;0.459  update tmp_t1 set create_time=CURRENT_TIMESTAMP,del_flag=:v_del_flag where persion_id= cast(:v_persion_id as varchar) and del_flag = :v_del_flag ;0.854  END;

压测 tpcb pgbench 之五 分区表(pg_pathman)压测相关推荐

  1. android assets解压,Android assets内压缩文件解压,解压到缓存示例

    1.assets内压缩文件解压AssetsZipUtils,包含一个获取文件夹下所有文件路径的方法,方便获取文件使用 public class AssetsZipUtils { public stat ...

  2. 算法 - 赫夫曼编码(对字符串进行压缩 与 解压(解码)) - (对文件进行压缩解压)

    1.压缩:使用赫夫曼编码进行压缩 题目 构建赫夫曼树 package tree.huffmantree;import java.util.*;public class HuffmanCode {pub ...

  3. 解压大于4g的文件_python解压压缩包

    压缩包类型:.gz .tar .tgz .zip .rar gz: 即gzip.通常仅仅能压缩一个文件.与tar结合起来就能够实现先打包,再压缩. tar: linux系统下的打包工具.仅仅打包.不压 ...

  4. Linux学习笔记017---文件解压命令的使用_压缩解压

    JAVA技术交流QQ群:170933152 找了两个,第一个好点,压缩 [root@sqb-v06 local]# tar -zcvf /usr/local/nginx-1.7.4_tar.gz /u ...

  5. 解压版mysql中文变成_解压版MYSQL中文乱码问题解决方案

    安装的是解压版的MYSQL 1:解压之后copy 一个my.ini文件 然后添加字节编码配置: [client] default-character-set=gbk [mysqld] characte ...

  6. tar linux 跳过解压,【linux命令】linux解压压缩命令tar详解以及压缩的时候如何跳过某一个压缩目录或文件...

    通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具.linux中最流行的tar是麻雀虽小,五脏俱全,功能强大. tar命令可以为linux ...

  7. linux解压工具软件,linux 安装rar解压工具

    linux中默认的tar命令用于解压压缩文件,但是tar命令不支持rar文件的解压和压缩,需要安装rar解压工具,实现rar命令解压rar压缩包. 1.下载rarlab软件wget -c https: ...

  8. aix java解压,AIX 7.1 jar unzip解压报错问题解决

    刚开始使用jar -xvf 进行解压也报错,怀疑jar解压命令有问题.便安装了zip相关包再进行解压还是报错. jar 解压报错 jar -xvf aix.ppc64_11gR2_database_1 ...

  9. FS2222可调过压过流芯片IC,40V耐压过压保护可调OVP可调OCP

    FS2222可调过压过流芯片IC,40V耐压过压保护可调OVP可调OCP FS2222可调过压过流芯片IC,40V耐压过压保护可调OVP可调OCP是一个可编程的限流开关,具有输入电压范围选择和输出电压 ...

  10. linux解压gz.gz文件,linux解压tar.gz并重命名_linux解压tar.gz文件

    原标题:linux解压tar.gz并重命名_linux解压tar.gz文件 命名为jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.t ...

最新文章

  1. jsp实现简单的分页
  2. 如何更好地利用Pmd、Findbugs和CheckStyle分析结果
  3. 为什么事情执行不下去?
  4. 图解Reformer:一种高效的Transformer
  5. linux加大ram 内核需要,Linux 5.1内核发布:io_uring接口+支持持久性内存用作RAM
  6. 监听APP升级广播处理
  7. Django Rest Framework 部分源码剖析
  8. 如何确定恶意软件是否在自己的电脑中执行过?
  9. HTTP请求与响应协议
  10. 网络营销的优势和劣势
  11. JavaScript Web APIs
  12. 将word 转换为图片(word to pdf ->pdf to image)
  13. python用双重循环输出菱形图案_使用循环创建菱形图案
  14. 什么是SSL双向认证,与单向认证证书有什么区别?
  15. 花式栈溢出技巧之frame faking
  16. 事件触发过程(事件流)
  17. [日常] go语言圣经-声明,变量,赋值,类型,包和文件习题
  18. 俞敏洪的屌丝逆袭 大学考了三次进北大
  19. “鲲鹏”七夕坐“高铁”,这难道是个灯谜?
  20. 帕斯卡命名法(PascalCase)

热门文章

  1. 计算机绘出一条虚线算法步骤,计算机图形学 第二章 基本图形生成算法.ppt
  2. SAS学习笔记41 宏变量存储及间接引用
  3. 曲线运动与万有引力公式_干货|曲线运动与万有引力定律相关解题技巧
  4. 如何成为一名优秀的技术工程师?
  5. 计算机图形学设计线宽代码,计算机图形学画圆并改变线宽.doc
  6. win10家庭版升级教育版,专业版和企业版最新密钥和方法分享
  7. Xiaojie雷达之路---脉冲压缩
  8. 网页设计期末作品_平面、网页、UI设计师该如何做作品集?
  9. android switch背景图片,修改SwitchCompat的背景图片
  10. jasperreport报表导出excel锁定行和列