Postgresql执行计划概述
执行计划个人理解是一个“点”,“线”,“面”的问题,关系数据库中执行计划是一个同质化的对象,串联起来还是比较容易掌握的,对于一条复杂的sql,所谓的点就是其中单个表的访问方式,线是表之间的连接\驱动顺序,面就是表与表之间的具体连接算法以及中间结果在内存缓冲区中的处理(类似于bitmap scan,中 ...
PostgreSQL笔记
一.PostgreSQL简介 PostgreSQL数据库一种关系型数据库。是当前世界上最先进的开源关系型数据库。 PostgreSQL使用的是一种客户端/服务器的模式。一次PostgreSQL会话由以下相关进程组成: 1.postgres:一个服务器进程(该进程管理着数据库文件,接收来自客户端的连接 ...
Postgresql中的位图扫描(bitmap scan)
从MySQL的MRR开始 开始之前,先从MySQL入手,看一下MySQL中的MRR机制原理,也就是Multi-Range Read。MySQL中在按照非聚集索引的范围查找且需要回表的情况下,比如select * from t where c2>100 and c2<200;c2为非聚集索引。如果直接 ...
PostgreSQL中三种自增列sequence,serial,identity区别
这三个对象都可以实现自增,这里从如下几个维度来看看这几个对象有哪些不同,其中功能性上看,大部分特性都是一致的或者类似的。 1,sequence在所有数据库中的性质都一样,它是跟具体的字段不是强绑定的,其特点是支持多个对个对象之间共享。 sequence作为自增字段值的时候,对表的写入需要另外单独授权 ...
Postgresql中最有用的扩展(Extensions)pg_stat_statements(译)
原文地址:https://www.citusdata.com/blog/2019/02/08/the-most-useful-postgres-extension-pg-stat-statements/Postgresql的Extensions能够延伸,更改和推进Postgres的行为。怎么样?通过 ...
PostgreSQL中的死锁和锁等待
开始之前明确一下死锁和锁等待这两个事件的异同相同的之处:两者都是当前事物在试图请求被其他事物已经占用的锁,从而造成当前事物无法执行的现象不同的之处:死锁是相关session双方或者多方中必然要牺牲(回滚)至少一个事务,否则双方(或者多方)都无法执行;锁等待则不然,对于暂时无法申请到的锁,尝试持续地“ ...
Postgresql统计信息
对于sql优化,除了索引之外,执行计划和统计信息是无法绕开的一个话题,如果sql优化(所有的RDBMS)脱离了统计信息的话就少了一个为什么的过程,味道就感觉少了一大半。刚接触Postgresql,粗浅地学习总结一下Postgresql相关的统计信息。 postgresql 进程模型 开始之前,有必要 ...
PG-跨库操作-postgres_fdw
接上一篇《PG-跨库操作-dblink》;讲下postgres_fdw的使用;postgres_fdw工作原理详细介绍可以去看下《PostgreSQL指南》第4章; 对FDW特性;还支持在PostgreSQL异构数据库的同步、迁移的场景。FDW随着Postgres版本而升级、优化,对分布式架构也是支 ...
Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API
太累了,不想来回复制粘贴,多么想有一键发布到各大写作平台上的功能。 说重点,Golang学习系列第五天: Golang和PostgreSQL开发 RESTful API:https://blog.csdn.net/dong19891210/article/details/107424704 ...
Golang学习系列第四天:操作数据库PostgreSQL
继Golang学习系列第三天https://www.cnblogs.com/dongguangming/p/13311198.html:数组、切片、Map、结构体、指针、函数、接口类型、channel通道,今天开始学习golang操作数据库,以PostgreSQL为例。 0. 安装PostgreSQ ...
PG-跨库操作-dblink
在PostgreSQL数据库之间进行跨库操作的方式 dblink postgres_fdw 本文先说说dblink;dblink是一个支持从数据库会话中连接到其他PostgreSQL数据库的插件。在其他数据库跨库操作也是采用dblink的方式 一、安装dblink PostgreSQL插件dblin ...
您所不了解的Postgres 10功能:CREATE STATISTICS(译)
原文地址:https://www.citusdata.com/blog/2018/03/06/postgres-planner-and-its-usage-of-statistics/,本文统一将原文中的“planner”译做“优化器” 如果您对Postgres进行了一些性能优化,则可能使用过EXP ...
序列跳号(跳跃)原因及解决
前叙: 今天上班的时候,测试老师发邮件反馈了一个投诉系统的缺陷,说是不同的投诉件在不同的处理阶段,会出现无法继续处理的现象。 我一看系统版本,原来是PgSQL版本出现的问题(因为最近和一个同事在做数据库迁移的工作,从Orale迁移到PgSQL~)。 因为需要迁移的东西非常多,所以难免会暴露出来一些问 ...
python如何监控PostgreSQL代码运行
如何监控PostgreSQL存储过程/函数代码运行?本文介绍用python+微信/邮件的方式进行报警、监控。 首先要有一张表、用于存放PostgreSQL存储过程/函数代码运行异常的信息。 处理原则:若出现异常;把“发生时间+所在的程序+**原因”**通过微信/邮件发给对应人员。当然发送一次即可;起 ...
PostgreSQL12-主从复制
注意:PostgreSQL 12对主从复制实现和配置做了重大改进,如废弃了recovery.conf,并将参数转换为普通的PostgreSQL配置参数,使得配置群集和复制更加简单。 PostgreSQL数据库支持多种复制解决方案,以构建高可用性,可伸缩,容错的应用程序,其中之一是预写日志(WAL)传 ...
在Docker中运行PostgreSQL + pgAdmin 4
拉取postgresql镜像:docker pull postgres 运行postgresql:docker run -d -p 5432:5432 --name postgresql -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD= ...
解析HOT原理
2020-06-09 19:31:01 一、疑问 前段时间;QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4)'查询业务表是查不到数据的;然后我做了表的vacuum,reindex甚至drop/create i ...
安装pg10
安装pg10 一、install yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install postgre ...
postgresql强制删除数据库
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='db_name' AND pid<>pg_backend_pid(); drop database db_name; ...
SQL子查询的感悟
今天在听陈华军老师的课时;感触颇多。其中讲到“不同执行计划的选择(子查询)”这一栏。我们在平时工作也经常要用到子查询。有哪些思路来优化这种子查询呢? 例如我们今天实验的表结构 表T1 有10000条记录;并在id字段创建btree索引 表T2 有1000条记录 postgres=# create t ...