PostgreSQL的pg_dump中 --inserts参数测试

PostgreSQL的pg_dump中 --inserts参数测试

1 准备测试数据

创建表yewu1.t1,并插入1000000条数据。

bash 复制代码
white=# create table yewu1.t1 (id int,name varchar(20));
CREATE TABLE
white=# DO $$
white$# DECLARE aa INTEGER;
white$# BEGIN
white$#     FOR aa IN 1..1000000 LOOP
white$#         INSERT INTO yewu1.t1 VALUES (aa,'white_' || aa);
white$# END LOOP;
white$# COMMIT;
white$# END $$;
DO
white=# 
white=# select count(*) from yewu1.t1;
  count  
---------
 1000000
(1 row)

white=# 
white=#     SELECT 
white-#       pg_size_pretty(pg_relation_size('yewu1.t1')) AS base_size,
white-#       pg_size_pretty(pg_table_size('yewu1.t1')) AS table_size,
white-#       pg_size_pretty(pg_indexes_size('yewu1.t1')) AS indexes_size,
white-#       pg_size_pretty(pg_total_relation_size('yewu1.t1')) AS total_size;
 base_size | table_size | indexes_size | total_size 
-----------+------------+--------------+------------
 49 MB     | 49 MB      | 0 bytes      | 49 MB
(1 row)

2 pg_dump 导出测试

2.1 加 --inserts 参数

导出

bash 复制代码
pg_dump -h 192.168.10.99 -U postgres -p 5777 -W white -t yewu1.t1 --inserts > /home/pg16/tmp_20240819/bak_0821_1.sql

查看导出文件内容

bash 复制代码
[pg16@test tmp_20240819]$ more bak_0821_1.sql
--
-- PostgreSQL database dump
--

-- Dumped from database version 16.2
-- Dumped by pg_dump version 16.2

-- Started on 2024-08-20 18:20:20 PDT

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- TOC entry 230 (class 1259 OID 17716)
-- Name: t1; Type: TABLE; Schema: yewu1; Owner: postgres
--

CREATE TABLE yewu1.t1 (
    id integer,
    name character varying(20)
);


ALTER TABLE yewu1.t1 OWNER TO postgres;

--
-- TOC entry 4118 (class 0 OID 17716)
-- Dependencies: 230
-- Data for Name: t1; Type: TABLE DATA; Schema: yewu1; Owner: postgres
--

INSERT INTO yewu1.t1 VALUES (1, 'white_1');
INSERT INTO yewu1.t1 VALUES (2, 'white_2');
INSERT INTO yewu1.t1 VALUES (3, 'white_3');
INSERT INTO yewu1.t1 VALUES (4, 'white_4');
INSERT INTO yewu1.t1 VALUES (5, 'white_5');
INSERT INTO yewu1.t1 VALUES (6, 'white_6');
INSERT INTO yewu1.t1 VALUES (7, 'white_7');
INSERT INTO yewu1.t1 VALUES (8, 'white_8');
INSERT INTO yewu1.t1 VALUES (9, 'white_9');
INSERT INTO yewu1.t1 VALUES (10, 'white_10');
INSERT INTO yewu1.t1 VALUES (11, 'white_11');
INSERT INTO yewu1.t1 VALUES (12, 'white_12');
INSERT INTO yewu1.t1 VALUES (13, 'white_13');
。。。。。省略

导入

bash 复制代码
psql -U postgres -W -v -d white -f /home/pg16/tmp_20240819/bak_0821_1.sql

查看输出日志:

bash 复制代码
[pg16@test tmp_20240819]$ more bak_0821_1.log
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
。。。。。省略

2.2 不加 --inserts 参数

导出

bash 复制代码
pg_dump -h 192.168.10.99 -U postgres -p 5777 -W white -t yewu1.t1 > /home/pg16/tmp_20240819/bak_0821_2.sql

查看导出文件内容

bash 复制代码
[pg16@test tmp_20240819]$ more bak_0821_2.sql
--
-- PostgreSQL database dump
--

-- Dumped from database version 16.2
-- Dumped by pg_dump version 16.2

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: t1; Type: TABLE; Schema: yewu1; Owner: postgres
--

CREATE TABLE yewu1.t1 (
    id integer,
    name character varying(20)
);


ALTER TABLE yewu1.t1 OWNER TO postgres;

--
-- Data for Name: t1; Type: TABLE DATA; Schema: yewu1; Owner: postgres
--

COPY yewu1.t1 (id, name) FROM stdin;
1       white_1
2       white_2
3       white_3
4       white_4
5       white_5
6       white_6
7       white_7
8       white_8
9       white_9
10      white_10
11      white_11
12      white_12
13      white_13
14      white_14
15      white_15
。。。。省略

导入

bash 复制代码
psql -U postgres -W -d white -f /home/pg16/tmp_20240819/bak_0821_2.sql

查看输出日志

bash 复制代码
[pg16@test tmp_20240819]$ more bak_0821_2.log
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 row)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
COPY 1000000
相关推荐
闲云野鹤在人间2 分钟前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
禾小西11 分钟前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存
胖头鱼的鱼缸(尹海文)34 分钟前
胖头鱼的技术专栏-474 从能跑到能上线:PG SplitJSON 0.2.0 和 0.1.0 差在哪(20261008)
postgresql·json
禾小西1 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
数据库小学妹1 小时前
数据共享交换平台选型:交换方式对比与避坑指南
数据库·信创·数据同步·数据交换平台·政务数据共享·数据共享交换平台·数据库底座
资料库011 小时前
Linux 8个常见运维故障排查
java·linux·运维
机核研创社2 小时前
睡裤明橡筋自动化选型指南与落地四步走
运维·自动化
志栋智能2 小时前
超自动化运维,告别复杂系统的新范式
运维·自动化
零基础1232 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
Android系统攻城狮3 小时前
Linux Gstreamer深度解析之gst_audio_sink_get_type调用流程与实战(六十五)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶