hypopg是一个构建虚拟索引的postgresql插件,本安装版本为postgresql12.6,系统为Ubuntu 16.04。 首先安装postgresql-server-dev-12 sudo apt-get install postgresql-server-dev-12 下载hypopg并解压 https://github.com/HypoPG/hypopg 我下载的是hypopg-REL1_STABLE.zip,解压后为 进入文件夹,执行如下命令: make sudo make install 打开数…

2021年3月24日 0条评论 11点热度 阅读全文

1. 下载与安装 官网下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads Windows下的安装: 安装目录可自行修改,找个不容易忘的地方吧。 语言选择默认即可,不要改成 Chinese,否则安装失败!!!   2. 数据库的创建和连接 2.1 数据库的创建 打开 cmd 窗口,输入以下内容,路径请自行修改,然后输入密码就可以执行 SQL 语句了。 C:\PostgreSQL\9.5\bin\psql.exe…

2021年3月3日 0条评论 18点热度 阅读全文

1. 下载与安装 官网下载地址: https://www.enterprisedb.com/downloads/postgres-postgresql-downloads Windows下的安装: 安装目录可自行修改,找个不容易忘的地方吧。 语言选择默认即可,不要改成 Chinese,否则安装失败!!!   2. 数据库的创建和连接 2.1 数据库的创建 打开 cmd 窗口,输入以下内容,路径请自行修改,然后输入密码就可以执行 SQL 语句了。 C:\PostgreSQL\9.5\bin\psql.exe…

2021年3月3日 0条评论 16点热度 阅读全文

在Oracle中我们经常使用insert all和insert first来实现多表插入的功能。虽然在pg中并不支持同样的语法,但是我们使用pg的CTE语法来实现相同的功能。 insert first和insert all最大的区别在于凡是符合第一个条件的就都插入第一个表,其他的数据才在以后的条件里再判断。 (关于insert all的用法和兼容方法见:PostgreSQL多表插入(兼容oracle insert all)) Oracle insert first例子: 下面我们先通过Oracle里面的例子来看看i…

2021年3月3日 0条评论 20点热度 阅读全文

在Oracle中我们经常使用insert all和insert first来实现多表插入的功能。虽然在pg中并不支持同样的语法,但是我们使用pg的CTE语法来实现相同的功能。 insert first和insert all最大的区别在于凡是符合第一个条件的就都插入第一个表,其他的数据才在以后的条件里再判断。 (关于insert all的用法和兼容方法见:PostgreSQL多表插入(兼容oracle insert all)) Oracle insert first例子: 下面我们先通过Oracle里面的例子来看看i…

2021年3月3日 0条评论 15点热度 阅读全文

1、创建用户 CREATE ROLE readonlyuser WITH LOGIN NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE NOREPLICATION ENCRYPTED PASSWORD 'md5e032d3f6aa6d6f9b78febe19c3e7861e'; COMMENT ON ROLE readonlyuser IS '只读用户'; 2、分配public模式下的所有已有表给用户readonlyuser GRANT select ON all tabl…

2021年3月3日 0条评论 17点热度 阅读全文

1、创建用户 CREATE ROLE readonlyuser WITH LOGIN NOSUPERUSER NOINHERIT NOCREATEDB NOCREATEROLE NOREPLICATION ENCRYPTED PASSWORD 'md5e032d3f6aa6d6f9b78febe19c3e7861e'; COMMENT ON ROLE readonlyuser IS '只读用户'; 2、分配public模式下的所有已有表给用户readonlyuser GRANT select ON all tabl…

2021年3月3日 0条评论 25点热度 阅读全文

文章目录 背景 应用 AutoVacuum参数配置 总结 背景 在生产环境下,表膨胀是无法避免的问题,而表膨胀的原因要从PostgreSQL的MVCC机制说起。PostgreSQL为了保证事物的隔离性,隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作,引入MVCC,实现多版本并发控制。 PostgreSQL数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在update或insert操作中该部分的空间是不能够被重用的。在PostgreSQL中用于维护数据库磁盘空间的工具是VA…

2021年3月2日 0条评论 30点热度 阅读全文

文章目录 背景 应用 AutoVacuum参数配置 总结 背景 在生产环境下,表膨胀是无法避免的问题,而表膨胀的原因要从PostgreSQL的MVCC机制说起。PostgreSQL为了保证事物的隔离性,隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作,引入MVCC,实现多版本并发控制。 PostgreSQL数据库执行delete操作后,表中的记录只是被标示为删除状态,并没有释放空间,在update或insert操作中该部分的空间是不能够被重用的。在PostgreSQL中用于维护数据库磁盘空间的工具是VA…

2021年3月2日 0条评论 13点热度 阅读全文

PostgreSQL逻辑复制 一.定义 逻辑复制是PostgreSQL 10版本的新功能. 官方定义为:逻辑复制是一种根据数据对象的复制标识复制数据对象及其数据变化的方法. 这里需要注意以下几点: 1.需要逻辑复制的主表的复制标识通常为主键,也可以是唯一索引 2.从表的表结构需要与主表一致,包括Schema,表名,字段名,主键等 3.目前逻辑复制仅支持DML语句(例如Insert Update Delete),不支持DDL语句的同步(例如truncate功能) 4.目前逻辑复制不支持序列数据的同步 5.目前逻辑复制…

2021年3月1日 0条评论 16点热度 阅读全文