ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PostgreSQL 学习笔记

2021-05-23 22:01:58  阅读:219  来源: 互联网

标签:insert PostgreSQL tb1 into batch3 笔记 学习 数据 id


批量插入:

方式一:

insert into tb1_batch1(user_id,user_name) select user_id,user_name from user_ini;

 

方式二:

create table tb1_batch3(id int4,info text);

insert into tb1_batch3(id,info) values (1,'a'),(2,'b'),(3,'c');

 

方式二能减少和数据库的交互,减少数据库WAL(Write-Ahead Logging)日志的生成,提升插入效率。

 

导入导出数据:

copy pguser.tb1_batch3 to 'd:\\1.txt';   //导出数据到D盘1.txt文件

copy pguser.tb1_batch3 from 'd:\\1.txt';  //导入数据到npas.tb1_batch3表,如果该表有数据,则追加写入导入的数据内容。

 

 

Returning 返回修改的数据:

insert into tb1_batch3(id,info) values (1,'a') returning *; //返回插入的整行数据

insert into tb1_batch3(id,info) values (1,'a') returning id; //返回插入的id字段

 

returning *            返回操作的整行数据

returning 字段名字     返回操作的具体字段数据

 

数据抽样

SYSTEM   方式 抽样数据,随机抽取表上数据块上的数据,数据块级别,适用于性能优先

insert into tb1_batch3(id,info) select n,n ||'_system_sample'

from generate_series(1,10000) n;

select * from tb1_batch3 TABLESAMPLE SYSTEM(0.1);//系统抽样0.1%的数据

 

BERNOULLI 方式抽样数据,随机抽取数据行,性能比System方式低很多,适用于随机性优先

select * from tb1_batch3 TABLESAMPLE BERNOULLI(0.01);

 

 

并行查询相关

1,  max_worker_processes    设置系统支持的最大后台进程数,默认8

2,  max_parallel_workers    设置系统支持的最大并行查询进程数,默认8

3,  max_parallel_workers_per_gather  设置允许启用的并行进程数,默认2,设置成0表示禁用并行查询

4,  三个参数的配置大小关系:1 > 2 > 3

 

事务与并发控制

由于Postgresql内部将read uncommitted 设计为和read commited一样,所以不会产生脏读。

脏读,第一个事务读取了第二个事务已经修改但还没有提交的数据

不可重复读,第一个事务读取数据之后,被读取数据被另一个已提交事务修改,再次读取时发现数据已经被修改,两次读结果不一致

幻读,一个事务两次查询结果不一致。

 

ANSI SQL标准的事务隔离级别:

Read uncommited 读未提交,很少用于实际应用

Read commited 读已提交,postgresql默认隔离级别

Repeatable read 可重复读

Serializable 可序列化

标签:insert,PostgreSQL,tb1,into,batch3,笔记,学习,数据,id
来源: https://www.cnblogs.com/chuyuan/p/14802336.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有