PostgreSQL 逻辑结构 和 权限体系 介绍
背景 本文旨在帮助用户理解PostgreSQL的逻辑结构和权限体系,帮助用户快速的理解和管理数据库的权限。 逻辑结构 最上层是实例,实例中允许创建多个数据库,每个数据库中可以创建多个schema,每个schema下面可以创建多个对象。 对象包括表、物化视图、操作符、索引、视图、序列、函数、… 等等。 在...
背景 本文旨在帮助用户理解PostgreSQL的逻辑结构和权限体系,帮助用户快速的理解和管理数据库的权限。 逻辑结构 最上层是实例,实例中允许创建多个数据库,每个数据库中可以创建多个schema,每个schema下面可以创建多个对象。 对象包括表、物化视图、操作符、索引、视图、序列、函数、… 等等。 在...
背景 PostgreSQL GIN索引的结构如下图 : 假设这个表有2列,一列存储INT,另一列存储INT数组,最左边的表示记录的行号。 假设对INT数组建立GIN索引,那么GIN索引会记录每个数组element对应的行号,对于行号多的,会存成LIST,然后在索引中指向该list。 好了接下来分析一...
背景 PS - 当前PG orafce, GPDB orafunc已修复这个BUG 有网友反映PostgreSQL oraface的add_months在某些日期与Oracle 的add_months不一致。 查了一下Oracle 的开发手册,add_months是这样定义的, 如果当前日期是月末,或者目标月没...
背景 通过链路压缩,提高窄带网络PostgreSQL数据库的备份性能。 需要用到PostgreSQL的SSL支持,用法请参考 《PostgreSQL 如何实现网络压缩传输或加密传输(openssl)》 流复制协议,pg_dump都支持ssl,因为它们都走libpq的调用,libpq是支持ssl的。 htt...
背景 PostgreSQL的物理备份方法之一 : 在使用pg_start_backup()函数新建备份点后,用户可以开始拷贝PG的数据文件。 postgres=# select pg_start_backup('a'),now(); pg_start_backup | now ...
背景 PostgreSQL csvlog日志格式记录了非常多的信息,通过CSV外部表,可以使用SQL对日志进行分析。 文档中的例子: http://www.postgresql.org/docs/9.5/static/runtime-config-logging.html#RUNTIME-CONFIG-LOG...
背景 在开始讲serializable read only deferrable用法前,需要先了解一下serializable隔离级别。 https://wiki.postgresql.org/wiki/Serializable http://www.postgresql.org/docs/9.5/stati...
背景 前模糊,后模糊,前后模糊,正则匹配都属于文本搜索领域常见的需求。 PostgreSQL在文本搜索领域除了全文检索,还有trgm是一般数据库没有的,可能很多人没有听说过。 对于前模糊和后模糊,PG则与其他数据库一样,可以使用btree来加速。后模糊可以使用反转函数的函数索引来加速。 对于前后模糊和正则匹...
背景 分页是一个非常常见的应用场景,然而恐怕没有多少人想过其优化方法。 确一味的责怪为什么数据库用count(*)计算分页数是如此的慢。 很多开发人员喜欢用count先算一下结果集的大小,然后就知道需要排多少页。 然后再从数据库取出对应的数据,并展示给用户。 问题1 count会扫一遍数据,然后取数据又...
背景 云为我们提供了便利,降低了开发和运维的成本。 但是也必须思考一个问题,我们的云组件之间的网络延迟有多大,和以前在局域网是一样的吗? (相比较局域网的服务器和服务器之间) 你可以用各种方法测试验证一下。 以往我们把数据放在数据库,数据库只提供简单的增删改查,大部分的业务逻辑放在应用服务器来完成,一个事...