PostgreSQL 学习笔记
2021/5/24 2:25:48
本文主要是介绍PostgreSQL 学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
批量插入:
方式一:
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 可序列化
这篇关于PostgreSQL 学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-05快速清空 PostgreSQL 数据库中的所有表格,让你的数据库重新焕然一新!
- 2024-01-04在PostgreSQL中创建角色:判断角色是否存在并创建
- 2023-05-16PostgreSQL一站式插件推荐 -- pg_enterprise_views
- 2022-11-22PostgreSQL 实时位置跟踪
- 2022-11-22如何将PostgreSQL插件移植到openGauss
- 2022-11-11PostgreSQL:修改数据库用户的密码
- 2022-11-06Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务
- 2022-10-27Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务
- 2022-10-11PostgreSql安装(Windows10版本)
- 2022-09-13PostgreSQL-Network Address类型操作和函数