zheap 之一 setup

os: ubuntu 16.04

zheap is a new storage format for PostgreSQL.This new storage format provides a better control over bloat, reduces the tuple size and reduces the write amplification.

版本

# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.5 LTS
Release:	16.04
Codename:	xenial

下載安裝

除了按照<<ubuntu 16.04 安裝 postgresql 的優化設置>>操作外,還需要額外執行

# apt install xsltproc

# mkdir -p /usr/zheap-11;
# chown -R postgres:postgres /usr/zheap-11/;
# 
# 
# su - postgres
$ git clone https://github.com/EnterpriseDB/zheap.git
$ du -sh
375M	.
$ cd zheap
$ git branch -a
$ git tag
$ 
$ 
$ export USE_NAMED_POSIX_SEMAPHORES=1  
$ LIBS=-lpthread CFLAGS="-O3 " ./configure --with-trans_slots_per_zheap_page=8 --prefix=/usr/zheap-11 
$ LIBS=-lpthread CFLAGS="-O3 " make world -j 4  
$ LIBS=-lpthread CFLAGS="-O3 " make install-world  

Each zheap page has fixed set of transaction slots each of which contains the transaction information (transaction id and epoch) and the latest undo record pointer for that transaction. By default, we have four transaction slots per page, but this can be changed by setting –with-trans_slots_per_zheap_page=value while configuring zheap.

環境變量

# vi /etc/environment 
PATH="/usr/zheap-11/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

# su - postgres
$ vi ~/.profile

#export LANG=zh_CN.UTF-8 
export PGHOME=/usr/zheap-11
export PGDATA=/data/zheap-11/data

#export PGDATABASE=postgres 
#export PGUSER=postgres  
#export PGPASSWORD=postgres 
#export PGPORT=5432

export MANPATH=${PGHOME}/share/man:$MANPAT
export LD_LIBRARY_PATH=$PGHOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export PATH=$PGHOME/bin:$PATH

export TEMP=/tmp
export TMPDIR=/tmp

# su - postgres
$ vi ~/.bashrc

#export LANG=zh_CN.UTF-8 
export PGHOME=/usr/zheap-11
export PGDATA=/data/zheap-11/data

#export PGDATABASE=postgres 
#export PGUSER=postgres  
#export PGPASSWORD=postgres 
#export PGPORT=5432

export MANPATH=${PGHOME}/share/man:$MANPAT
export LD_LIBRARY_PATH=$PGHOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export PATH=$PGHOME/bin:$PATH

export TEMP=/tmp
export TMPDIR=/tmp

初始化

$ initdb -D /data/zheap-11/data -U postgres --lc-collate=C --lc-ctype=en_US.utf8 -E UTF8 

$ pg_ctl start -D /data/zheap-11/data

$ ps -ef|grep -i post |grep -v grep
postgres  1062     1  0 17:36 pts/0    00:00:00 /usr/zheap-11/bin/postgres -D /data/zheap-11/data
postgres  1067  1062  0 17:36 ?        00:00:00 postgres: checkpointer   
postgres  1068  1062  0 17:36 ?        00:00:00 postgres: background writer   
postgres  1069  1062  0 17:36 ?        00:00:00 postgres: walwriter   
postgres  1070  1062  0 17:36 ?        00:00:00 postgres: autovacuum launcher   
postgres  1071  1062  0 17:36 ?        00:00:00 postgres: stats collector   
postgres  1072  1062  0 17:36 ?        00:00:00 postgres: discard worker   
postgres  1073  1062  0 17:36 ?        00:00:00 postgres: undo worker launcher   
postgres  1074  1062  0 17:36 ?        00:00:00 postgres: logical replication launcher

看到沒 postgres: undo worker launcher

Test run before pushing code

make check-world
make installcheck and isolation test (with default_table_access_method = 'zheap')
make installcheck with hot standby (with wal_consistency_checking=all)
You can find overall design of zheap in the README: src/backend/access/zheap/README

$ mkdir -p /data/zheap-11/tbs1
$ psql
psql (11.1)
Type "help" for help.

postgres=# create tablespace zheap_tbs1 location '/data/zheap-11/tbs1';
CREATE TABLESPACE

postgres=# create table tmp_t0(c0 varchar(100),c1 varchar(100),c2 varchar(100)) ;
create table tmp_t1(c0 varchar(100),c1 varchar(100),c2 varchar(100)) using zheap;
create table tmp_t2(c0 varchar(100),c1 varchar(100),c2 varchar(100)) using zheap tablespace zheap_tbs1;

postgres=# insert into tmp_t0(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
postgres=# insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
postgres=# insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;

默認情況下會有一堆的輸出,日誌附後

參考:
https://github.com/EnterpriseDB
https://github.com/EnterpriseDB/zheap
https://wiki.postgresql.org/wiki/Zheap

https://www.enterprisedb.com/blog/zheap-storage-engine-provide-better-control-over-bloat
https://brandur.org/fragments/olap-oltp-zheap

下面是相關日誌

postgres=# 
postgres=# insert into tmp_t0(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
INSERT 0 1000000
postgres=# 
postgres=# 
postgres=# 
postgres=# 
postgres=# insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:07.219 CST [1082] LOG:  created undo segment "base/undo/000000.0004A00000"
2019-04-01 17:49:07.219 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:07.400 CST [1082] LOG:  created undo segment "base/undo/000000.0004B00000"
2019-04-01 17:49:07.400 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:07.525 CST [1082] LOG:  created undo segment "base/undo/000000.0004C00000"
2019-04-01 17:49:07.525 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:07.697 CST [1082] LOG:  created undo segment "base/undo/000000.0004D00000"
2019-04-01 17:49:07.697 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:07.872 CST [1082] LOG:  created undo segment "base/undo/000000.0004E00000"
2019-04-01 17:49:07.872 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.010 CST [1082] LOG:  created undo segment "base/undo/000000.0004F00000"
2019-04-01 17:49:08.010 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.133 CST [1082] LOG:  created undo segment "base/undo/000000.0005000000"
2019-04-01 17:49:08.133 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.295 CST [1082] LOG:  created undo segment "base/undo/000000.0005100000"
2019-04-01 17:49:08.295 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.464 CST [1082] LOG:  created undo segment "base/undo/000000.0005200000"
2019-04-01 17:49:08.464 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.703 CST [1082] LOG:  created undo segment "base/undo/000000.0005300000"
2019-04-01 17:49:08.703 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:08.906 CST [1082] LOG:  created undo segment "base/undo/000000.0005400000"
2019-04-01 17:49:08.906 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:09.203 CST [1082] LOG:  created undo segment "base/undo/000000.0005500000"
2019-04-01 17:49:09.203 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:09.447 CST [1082] LOG:  created undo segment "base/undo/000000.0005600000"
2019-04-01 17:49:09.447 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:09.610 CST [1082] LOG:  created undo segment "base/undo/000000.0005700000"
2019-04-01 17:49:09.610 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:09.749 CST [1082] LOG:  created undo segment "base/undo/000000.0005800000"
2019-04-01 17:49:09.749 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:10.440 CST [1082] LOG:  created undo segment "base/undo/000000.0005900000"
2019-04-01 17:49:10.440 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:10.589 CST [1082] LOG:  created undo segment "base/undo/000000.0005A00000"
2019-04-01 17:49:10.589 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:10.755 CST [1082] LOG:  created undo segment "base/undo/000000.0005B00000"
2019-04-01 17:49:10.755 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:11.152 CST [1082] LOG:  created undo segment "base/undo/000000.0005C00000"
2019-04-01 17:49:11.152 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:11.377 CST [1082] LOG:  created undo segment "base/undo/000000.0005D00000"
2019-04-01 17:49:11.377 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:11.779 CST [1082] LOG:  created undo segment "base/undo/000000.0005E00000"
2019-04-01 17:49:11.779 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:12.061 CST [1082] LOG:  created undo segment "base/undo/000000.0005F00000"
2019-04-01 17:49:12.061 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:12.594 CST [1082] LOG:  created undo segment "base/undo/000000.0006000000"
2019-04-01 17:49:12.594 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:12.803 CST [1082] LOG:  created undo segment "base/undo/000000.0006100000"
2019-04-01 17:49:12.803 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:13.019 CST [1082] LOG:  created undo segment "base/undo/000000.0006200000"
2019-04-01 17:49:13.019 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:13.227 CST [1082] LOG:  created undo segment "base/undo/000000.0006300000"
2019-04-01 17:49:13.227 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:13.469 CST [1082] LOG:  created undo segment "base/undo/000000.0006400000"
2019-04-01 17:49:13.469 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:13.809 CST [1082] LOG:  created undo segment "base/undo/000000.0006500000"
2019-04-01 17:49:13.809 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:13.953 CST [1082] LOG:  created undo segment "base/undo/000000.0006600000"
2019-04-01 17:49:13.953 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:14.247 CST [1082] LOG:  created undo segment "base/undo/000000.0006700000"
2019-04-01 17:49:14.247 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:14.380 CST [1082] LOG:  created undo segment "base/undo/000000.0006800000"
2019-04-01 17:49:14.380 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:14.564 CST [1082] LOG:  created undo segment "base/undo/000000.0006900000"
2019-04-01 17:49:14.564 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:14.714 CST [1082] LOG:  created undo segment "base/undo/000000.0006A00000"
2019-04-01 17:49:14.714 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:14.960 CST [1082] LOG:  created undo segment "base/undo/000000.0006B00000"
2019-04-01 17:49:14.960 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:15.073 CST [1082] LOG:  created undo segment "base/undo/000000.0006C00000"
2019-04-01 17:49:15.073 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:15.241 CST [1082] LOG:  created undo segment "base/undo/000000.0006D00000"
2019-04-01 17:49:15.241 CST [1082] STATEMENT:  insert into tmp_t1(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
INSERT 0 1000000
postgres=# 2019-04-01 17:49:15.382 CST [1072] LOG:  recycled undo segment "base/undo/000000.0004800000" -> "base/undo/000000.0006E00000"
2019-04-01 17:49:15.382 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004900000"
2019-04-01 17:49:15.383 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004A00000"
2019-04-01 17:49:15.383 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004B00000"
2019-04-01 17:49:15.383 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004C00000"
2019-04-01 17:49:15.383 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004D00000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004E00000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0004F00000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005000000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005100000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005200000"
2019-04-01 17:49:15.384 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005300000"
2019-04-01 17:49:15.385 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005400000"
2019-04-01 17:49:15.385 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005500000"
2019-04-01 17:49:15.385 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005600000"
2019-04-01 17:49:15.386 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005700000"
2019-04-01 17:49:15.386 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005800000"
2019-04-01 17:49:15.386 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005900000"
2019-04-01 17:49:15.386 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005A00000"
2019-04-01 17:49:15.386 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005B00000"
2019-04-01 17:49:15.387 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005C00000"
2019-04-01 17:49:15.387 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005D00000"
2019-04-01 17:49:15.387 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005E00000"
2019-04-01 17:49:15.387 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0005F00000"
2019-04-01 17:49:15.388 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006000000"
2019-04-01 17:49:15.388 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006100000"
2019-04-01 17:49:15.388 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006200000"
2019-04-01 17:49:15.388 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006300000"
2019-04-01 17:49:15.389 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006400000"
2019-04-01 17:49:15.389 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006500000"
2019-04-01 17:49:15.389 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006600000"
2019-04-01 17:49:15.389 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006700000"
2019-04-01 17:49:15.390 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006800000"
2019-04-01 17:49:15.390 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006900000"
2019-04-01 17:49:15.390 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006A00000"
2019-04-01 17:49:15.390 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006B00000"
2019-04-01 17:49:15.390 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006C00000"

postgres=# 
postgres=# 
postgres=# 
postgres=# insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:34.573 CST [1082] LOG:  created undo segment "base/undo/000000.0006F00000"
2019-04-01 17:49:34.573 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:34.726 CST [1082] LOG:  created undo segment "base/undo/000000.0007000000"
2019-04-01 17:49:34.726 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:34.948 CST [1082] LOG:  created undo segment "base/undo/000000.0007100000"
2019-04-01 17:49:34.948 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:35.095 CST [1082] LOG:  created undo segment "base/undo/000000.0007200000"
2019-04-01 17:49:35.095 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:35.205 CST [1082] LOG:  created undo segment "base/undo/000000.0007300000"
2019-04-01 17:49:35.205 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:35.380 CST [1082] LOG:  created undo segment "base/undo/000000.0007400000"
2019-04-01 17:49:35.380 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:35.562 CST [1082] LOG:  created undo segment "base/undo/000000.0007500000"
2019-04-01 17:49:35.562 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.027 CST [1082] LOG:  created undo segment "base/undo/000000.0007600000"
2019-04-01 17:49:36.027 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.136 CST [1082] LOG:  created undo segment "base/undo/000000.0007700000"
2019-04-01 17:49:36.136 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.386 CST [1082] LOG:  created undo segment "base/undo/000000.0007800000"
2019-04-01 17:49:36.386 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.630 CST [1082] LOG:  created undo segment "base/undo/000000.0007900000"
2019-04-01 17:49:36.630 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.768 CST [1082] LOG:  created undo segment "base/undo/000000.0007A00000"
2019-04-01 17:49:36.768 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:36.994 CST [1082] LOG:  created undo segment "base/undo/000000.0007B00000"
2019-04-01 17:49:36.994 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.137 CST [1082] LOG:  created undo segment "base/undo/000000.0007C00000"
2019-04-01 17:49:37.137 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.234 CST [1082] LOG:  created undo segment "base/undo/000000.0007D00000"
2019-04-01 17:49:37.234 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.391 CST [1082] LOG:  created undo segment "base/undo/000000.0007E00000"
2019-04-01 17:49:37.391 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.634 CST [1082] LOG:  created undo segment "base/undo/000000.0007F00000"
2019-04-01 17:49:37.634 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.758 CST [1082] LOG:  created undo segment "base/undo/000000.0008000000"
2019-04-01 17:49:37.758 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:37.908 CST [1082] LOG:  created undo segment "base/undo/000000.0008100000"
2019-04-01 17:49:37.908 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:38.170 CST [1082] LOG:  created undo segment "base/undo/000000.0008200000"
2019-04-01 17:49:38.170 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:38.387 CST [1082] LOG:  created undo segment "base/undo/000000.0008300000"
2019-04-01 17:49:38.387 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:38.526 CST [1082] LOG:  created undo segment "base/undo/000000.0008400000"
2019-04-01 17:49:38.526 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:38.753 CST [1082] LOG:  created undo segment "base/undo/000000.0008500000"
2019-04-01 17:49:38.753 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:38.944 CST [1082] LOG:  created undo segment "base/undo/000000.0008600000"
2019-04-01 17:49:38.944 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:39.164 CST [1082] LOG:  created undo segment "base/undo/000000.0008700000"
2019-04-01 17:49:39.164 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:39.388 CST [1082] LOG:  created undo segment "base/undo/000000.0008800000"
2019-04-01 17:49:39.388 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:39.667 CST [1082] LOG:  created undo segment "base/undo/000000.0008900000"
2019-04-01 17:49:39.667 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:39.888 CST [1082] LOG:  created undo segment "base/undo/000000.0008A00000"
2019-04-01 17:49:39.888 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:40.133 CST [1082] LOG:  created undo segment "base/undo/000000.0008B00000"
2019-04-01 17:49:40.133 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:40.261 CST [1082] LOG:  created undo segment "base/undo/000000.0008C00000"
2019-04-01 17:49:40.261 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:40.581 CST [1082] LOG:  created undo segment "base/undo/000000.0008D00000"
2019-04-01 17:49:40.581 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:40.893 CST [1082] LOG:  created undo segment "base/undo/000000.0008E00000"
2019-04-01 17:49:40.893 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:41.159 CST [1082] LOG:  created undo segment "base/undo/000000.0008F00000"
2019-04-01 17:49:41.159 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:41.321 CST [1082] LOG:  created undo segment "base/undo/000000.0009000000"
2019-04-01 17:49:41.321 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
2019-04-01 17:49:41.634 CST [1082] LOG:  created undo segment "base/undo/000000.0009100000"
2019-04-01 17:49:41.634 CST [1082] STATEMENT:  insert into tmp_t2(c0,c1,c2) select id::varchar,md5(id::varchar),md5(md5(id::varchar)) from generate_series(1,1000000) as id;
INSERT 0 1000000
postgres=# 2019-04-01 17:49:41.850 CST [1072] LOG:  recycled undo segment "base/undo/000000.0006D00000" -> "base/undo/000000.0009200000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006E00000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0006F00000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007000000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007100000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007200000"
2019-04-01 17:49:41.850 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007300000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007400000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007500000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007600000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007700000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007800000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007900000"
2019-04-01 17:49:41.851 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007A00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007B00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007C00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007D00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007E00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0007F00000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008000000"
2019-04-01 17:49:41.852 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008100000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008200000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008300000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008400000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008500000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008600000"
2019-04-01 17:49:41.853 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008700000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008800000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008900000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008A00000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008B00000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008C00000"
2019-04-01 17:49:41.854 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008D00000"
2019-04-01 17:49:41.855 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008E00000"
2019-04-01 17:49:41.855 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0008F00000"
2019-04-01 17:49:41.855 CST [1072] LOG:  unlinked undo segment "base/undo/000000.0009000000"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章