![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PostgreSQL
文章平均质量分 56
PostgreSQL
abcdggggggg
喜欢的可以点赞收藏~~
展开
-
PostgreSQL(二) 索引介绍 索引扫描方式(gin索引 pg_trgm模糊查询索引原理)
1.索引的意义1.1索引的优点创建索引能够加快对表的查询,排序,以及唯一约束的作用。索引能够提供给优化器更好的值分布统计信息。1.2索引的缺点创建索引会增加数据库的存储空间,在计算数据库的容量大小时需要计算表和索引的总空间大小。在创建完索引之后的表,执行插入、更新和删除操作时,索引需要更新,故耗时会成倍增加。2.索引管理2.1创建索引创建索引时,不能包括schema模式名,因为索引默认被创建在其基表所在的模式中,创...原创 2020-05-13 09:48:47 · 3038 阅读 · 0 评论 -
PostgreSQL cstore_fdw扩展安装 使用orc列式存储
1.简介 cstore_fdw实现了PostgreSQL的列式存储。列存储非常适合用于数据分析的场景,数据分析的场景下数据是批量加载的。fdw(ForeignDataWrappers)的含义是外部数据包装器。 这个扩展使用了Optimized Row Columnar(ORC)数据存储格式,ORC改进了Facebook的RCFile格式。优点: 压缩: 将内存和磁盘中数据大小削减到2到4倍。可以扩展以支持不同压缩算法。(官方自测性能也最多就提升了1倍,大多数在10%到50%之间) ..原创 2021-05-18 14:32:13 · 1745 阅读 · 2 评论 -
PostgreSQL 数据库运维问题 查看数据库进程 查看CPU占用过高的SQL
查看数据库的当前连接数和状态的几种方式:只是能看出数据库服务是否正在运行和启动路径#切换用户su postgrespg_ctl status1.查看数据库进程统计当前postgresql相关进程数,在大体上可以估算数据库的连接数,非精准,但是目前最常用的ps -ef |grep postgres |wc -l包含本窗口的所有数据库连接数SELECT count(*) FROM pg_stat_activity;2.数据库CPU占用过高...原创 2021-04-18 14:37:14 · 5104 阅读 · 1 评论 -
PostgreSQL 压测工具pgbench
1.命令pgbench --helppgbench is a benchmarking tool for PostgreSQL.Usage:pgbench [OPTION]... [DBNAME]Initialization options:-i, --initializeinvokes initialization mode 初始化模式-F, --fillfactor=NUMset fill factor-n, --no-vacuu...原创 2021-04-18 14:33:45 · 536 阅读 · 0 评论 -
PostgreSQL checkpoint(检查点)参数设置
1.简介 PostgreSQL是依靠预写日志(WAL)的数据库之一,所有的更改首先被写入一个日志(一个变化的流),然后再写入数据文件.这提高了数据的安全性,因为在崩溃的情况下,数据库会使用WAL执行恢复,从WAL读取更改并将其重新应用于数据文件.虽然这可能会使写入量增加一倍,但实际上可能会提高性能,用户只需要等待WAL(刷新到磁盘),而数据文件仅在内存中修改,然后在后台刷新. WAL写入本质上是顺序写入的,而对数据文件的写入往往是随机写入的. 非常频繁的检查点(比如几秒一次).只保留少量的...原创 2021-04-17 22:06:32 · 2967 阅读 · 0 评论 -
PostgreSQL 日志参数解释 常用环境日志参数配置
1.常用日志参数logging_collector = on/off是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务),启动之后查看进程ps -ef|grep postgres,会多一个logger进程。log_directory = 'pg_log'日志文件目录,默认是PGDATA的相对路径,即PGDATA的相对路径,即{PGDATA}/pg_log,也可以改为绝对路径,可以定义在其他目录或者分区,但是必须先创建此目录,并修改权限。log_filen...原创 2021-04-17 22:03:53 · 4282 阅读 · 0 评论 -
PostgreSQL 将csv格式的日志导入到自定义表中
将CSV日志导入数据库表里1.修改日志参数log_destination = 'csvlog'logging_collector = on这两个参数修改后,PG SERVER 需要重启。2.创建日志记录表CREATETABLEpostgres_log(log_timetimestamp(3)withtimezone,user_nametext,database_nametext,process_idinteger,...原创 2021-04-17 21:55:25 · 505 阅读 · 0 评论 -
PostgreSQL 建表create table like including 用法
使用索引约束:CREATE TABLE table_name (like t_key_event_file_student INCLUDING INDEXES);使用多种约束:CREATE TABLE table_name (like t_key_event_file_student INCLUDING INDEXES INCLUDING DEFAULTS);如果希望索引、主键约束和唯一约束被复制的话,那么需要指定INCLUDING INDEXES ...原创 2021-04-17 21:51:21 · 4404 阅读 · 0 评论 -
PostgreSQL 常见简单问题解决 创建和删除database失败 客户端client连接数超过限制(too many clients already)
PostgreSQL常见问题解决1.删除databaseDROP DATABASE viid;执行上述sql报错信息如下:ERROR: database " viid " is being accessed by other usersDETAIL: There is 1 other session using the database.原因是有其他的session正在使用该数据库解决方法1:可以使用sql查看使用者的ip,让使用者断开。SELECT * FRO..原创 2020-10-09 11:00:58 · 6653 阅读 · 0 评论 -
PostgreSQL 流表 流数据 pipelineDB 概述和安装
来源:https://pipelinedb-doc-cn.readthedocs.io/zh_CN/latest/introduction.html1.概述 PipelineDB是一个用于在时序数据上持续执行SQL查询的高性能PostgreSQL插件。SQL查询的输出被持久化到普通的表中,可以像其它的表或视图一样进行查询。可以认为持续查询的结果是一个高吞吐量并且快速更新的物化视图。2.优点 PipelineDB被设计用来在精简后的流式数据集上进行SQL查询。比如:概要和聚合;基于滑...原创 2020-05-19 10:15:48 · 858 阅读 · 0 评论 -
PostgreSQL 参数优化设置 32GB内存(推荐) 内存参数 检查点 日志参数 自动初始化参数shell脚本
1.修改参数列表(1)执行计划enable_nestloop = off #默认为onenable_seqscan = off #默认为onenable_indexscan = onenable_bitmapscan = onmax_connections = 1000 #默认为100(2)内存相关shared_buffers = 16GB # 默认为128MBeffective_cache_size = 24GB #默认为4GBwork_mem = 32.原创 2020-05-15 20:09:37 · 1852 阅读 · 2 评论 -
PostgreSQL pg_trgm扩展安装 模糊查询 使用原理
1.pg_trgm安装(1)安装btree_gin和pg_trgm# 需要先进入pg源码包中su - postgrescd contrib/pg_trgm/make && make install安装pg_trgm扩展时需要安装btree_gin才可以使用cd contrib/btree_gin/make && make install(2)创建扩展 安装的扩展默认都是在pg_catalog这个schema下面。也...原创 2020-05-15 20:00:31 · 6644 阅读 · 0 评论 -
PostgreSQL 10.x版本 分区表优缺点 详细解释分析 partition语法 分区表的使用
参考:http://www.postgres.cn/news/viewone/1/271分区字段选择:如果分区的目的只是为了切分数据,那么通常分区的字段需要选择与实际入库时间更接近的那个字段,因为更好管理一些1.分区表的说明 操作性相当便捷。但只能在创建时决定是否为分区表,并决定分区条件字段,普通表创建后,不能在修改为分区表。Note:通过其他方法也可转化为分区表。和其他数据库一样,分区表作为一个DB的特性,优点自不用说,物理分散,逻辑统一。必须要注意的一个缺点是:分区表不允许其他...原创 2020-05-13 20:22:56 · 2332 阅读 · 0 评论 -
PostgreSQL vacuum autovacuum参数 调优原理 清理死亡元祖 dead tuples 详细
1.Dead tuples 在Postgresql做delete操作时,数据集(也叫做元组 (tuples))是没有立即从数据文件中移除的,仅仅是通过在行头部设置xmax做一个删除标记。update操作也是一样的,在postgresql中可以看作是先delete再insert; 这是Postgresql MVCC的基本思想之一,因为它允许在不同进程之间只进行最小的锁定就可以实现更大的并发性。这个MVCC实现的缺点当然是它会留下被标记删除的元组(dead tuples),即使在这些版本的所有事...转载 2020-05-13 20:07:06 · 2666 阅读 · 0 评论 -
PostgreSQL 全量 增量 归档 备份工具 pg_rman介绍与使用(二)
1.介绍 PostgreSQL已经支持类似的Oracle的rman的备份工具的功能,支持全量,增量,归档三种备份模式,支持压缩,支持备份集的管理等。 pg_rman使用的是pg_start_backup(),copy,pg_stop_backup()的备份模式,pg_rman跑的不是流复制协议,而是文件拷贝,所以pg_rman必须和数据库节点跑在一起。如果在待机节点跑pg_rman,pg_rman则需要通过网络连接到主节点执行pg_start_backup和pg_stop_backup.pg_...原创 2020-05-13 11:16:16 · 2303 阅读 · 0 评论 -
PostgreSQL 全量 增量 归档 备份工具 pg_rman安装(一)
1.前提准备(1)配置csvlog 在postgresql.conf(一定要配置在postgresql.conf中,配置 postgresql.auto.conf和alter system命令没用)中添加:log_destination = 'csvlog'(2)开启归档在postgresql.conf中添加:wal_level需要修改replica或者以上,因为postgresql 10版本默认是replica所以不用修改。archive_mode = '...原创 2020-05-13 11:13:16 · 1339 阅读 · 2 评论 -
PostgreSQL 存储过程 常用语法(高级)PERFORM DIAGNOSTICS RETURN
来源网址:https://github.com/digoal/blog/blob/master/201704/20170412_02.md1.执行无结果调用语法PERFORM query;通常被用来判断是否有记录,如下:CREATE OR REPLACE FUNCTION public.test_perform()RETURNS void AS $BODY$DECLAREBEGINPERFORM 1 from public.pgbench_bran...原创 2020-05-12 20:27:51 · 11507 阅读 · 3 评论 -
PostgreSQL rpm安装环境配置 详细(无网环境)
参考;https://www.cnblogs.com/yoyotl/p/7491288.html1.卸载PostgreSQL检查pg是否已经安装,如果安装了可以通过rpm -ev xxx进行删除rpm -qa | grep postgres检查pg安装位置,之后手动删除文件夹2.创建postgres用户组useradd postgrespasswd postgres设置初始密码为postgres3.下载rpm安装包(无网环境)下载网址:htt...原创 2020-05-13 10:13:46 · 5142 阅读 · 0 评论 -
PostgreSQL(五) 事务定义 ACID 事务的隔离级别 详细
1.事务定义 事务是一个工作单元,对数据库执行。事务是在一个逻辑顺序,无论是由用户手动或某种数据库程序自动完成的工作单位或序列。 事务是指一个或多个更改数据库的传播。例如,如果正在创建一个记录或更新记录从表中删除一条记录,那么正在执行的事务放在表中。重要的是要控制事务,以确保数据的完整性和处理数据库错误。2.ACID事务具有以下四个标准属性的缩写ACID,通常被称为: 原子性(Atomic):事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚...原创 2020-05-16 09:38:51 · 344 阅读 · 0 评论 -
PostgreSQL(四) 基本语法大全 常用SQL DDL DML 约束操作 新手推荐
1.基本数据库操作(1)创建数据库create database [数据库名];(2)删除数据库drop database [数据库名];(3)数据库重命名alter database [old_数据库名] rename to [new_数据库名];(4)创建表create table ([字段名1] [类型1] <references 关联表名(关联的字段名)>;,[字段名2] [类型2],......&...原创 2020-05-13 11:09:53 · 440 阅读 · 0 评论 -
PostgreSQL(三) 内存参数优化和原理(work_mem)内存表 pgfincore插件使用方法
1.常用内存参数1.1 shared_buffersshared_buffers是PostgreSQL用于共享缓冲区的内存,是由8kb大小的块所形成的数组。PostgreSQL在进行更新、查询等操作时,首先从磁盘把数据读取到内存,之后进行更新,最后将数据写回磁盘。shared_buffers可以暂时存放从磁盘读取的数据,能够让用户下次访问不需要去磁盘直接从里面读取出来,增加查询效率。shared_buffers的系统默认值通常为128MB。但是当PostgreSQL服务器的内存大于1G时,则shar原创 2020-05-13 10:02:43 · 8886 阅读 · 1 评论 -
PostgreSQL(一) 系统架构介绍 优点 基础 源码包安装 设置开机自启
1. PostgreSQL 介绍1.1 基本概念 PostgreSQL是美国加州大学伯克利分校计算机系开发的一个对象关系型数据库管理系统。PostgreSQL 是一个自由的对象-关系数据库服务器,它在灵活的 BSD-风格许可证下发行。BSD协议是一个对商业集成很友好的协议,任何人都可以以任何目地免费使用、修改、分发PostgreSQL,不管是私用、商用,还是学术研究使用。因此PostgreSQL在其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统( Oracle、Sy..原创 2020-05-13 20:34:01 · 344 阅读 · 0 评论