代码改变世界

随笔分类 -  postgres

PostgreSQL中enable、disable和validate外键约束

2020-11-14 09:22 by abce, 3616 阅读, 收藏, 编辑
摘要: postgres=# create table t1(a int primary key,b text,c date); CREATE TABLE postgres=# create table t2(a int primary key,b int references t1(a),c text); 阅读全文

PostgreSQL中的collations

2020-11-13 09:08 by abce, 1095 阅读, 收藏, 编辑
摘要: 与Oracle相比,PostgreSQL对collation的支持依赖于操作系统。 以下是基于Centos7.5的测试结果 $ env | grep LC $ env | grep LANG LANG=en_US.UTF-8 使用initdb初始化集群的时候,就会使用这些操作系统的配置。 postg 阅读全文

PostgreSQL中的template0和template1库

2020-11-11 09:48 by abce, 1927 阅读, 收藏, 编辑
摘要: postgresql中默认会有三个数据库:postgres、template0、template1。 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges + + + 阅读全文

postgresql中表或索引被创建之后统计信息会立即可用么?

2020-11-10 09:48 by abce, 413 阅读, 收藏, 编辑
摘要: 当我们创建表或者索引之后,他们的统计信息是自动可用么?更精确地描述一下:第一步,我们先创建或加载一个表;第二步,在表上创建一个索引。那我们是默认就有了可用的统计信息,或者还是需要等待一个autovacuum或手动analyze才可用呢? 我们测试一下吧。 首先禁用一下autovacuum,以免在后台 阅读全文

postgresql在何时创建表和索引文件

2020-11-09 08:41 by abce, 1189 阅读, 收藏, 编辑
摘要: oracle中有个特性:deferred segment createion。那么在postgresql中,在创建表或者索引的时候,磁盘上对应的文件是立即创建还是插入第一行数据的时候创建呢? 来做个简单的测试。 postgres=# create table t1(a int); CREATE TA 阅读全文

PostgreSQL中index only scan并不总是仅扫描索引

2020-11-06 08:46 by abce, 1559 阅读, 收藏, 编辑
摘要: postgresql从9.2开始就引入了仅索引扫描(index only scans)。但不幸的是,并不是所有的index only scans都不会再访问表。 postgres=# create table t1(a int,b int,c int); CREATE TABLE postgres= 阅读全文

在postgressql内部修改pg_hba.conf

2020-11-05 08:40 by abce, 1637 阅读, 收藏, 编辑
摘要: 查看pg_hba.conf文件的内容: postgres=# select * from pg_hba_file_rules; line_number | type | database | user_name | address | netmask | auth_method | options 阅读全文

PostgreSQL中的schema和user

2020-11-04 08:52 by abce, 7832 阅读, 收藏, 编辑
摘要: postgresql中,用户创建的所有对象都被创建在指定的schema(或namespace)中。其他用户可能拥有、也可能不拥有访问这些对象的权限,甚至都不可以在对应的schema中创建对象。 从上面的表可以看出,用户(或角色)是全局对象,不是定义在数据库中,而是定义在实例的级别。schema是用户 阅读全文

PostgreSQL中的默认权限(default privileges)

2020-11-03 09:05 by abce, 2731 阅读, 收藏, 编辑
摘要: 有时候我们会遇到这种情况(这种情况并不少见):用户schema中有很多对象,并且你想授权题用户访问这些表。你可以通过grant直接授权,但是当对象属主创建新的对象呢?你可能还需要再次授权,但是postgresql提供一个解决方案。 postgres=# create user a password 阅读全文

PostgreSQL在哪里存放默认的权限

2020-10-30 10:42 by abce, 551 阅读, 收藏, 编辑
摘要: 先创建一个测试用户 postgres=# create user abce with login password 'abce'; CREATE ROLE postgres=# create schema t; CREATE SCHEMA postgres=# alter default privi 阅读全文

PostgreSQL复制以及监控

2020-10-28 08:55 by abce, 310 阅读, 收藏, 编辑
摘要: PostgreSQL复制的类型 + + | | | Replication in PostgreSQL | | | +--+ +--+ | | | | + v + + v + | Physical | | Logical | +-+ +-+ + + + | | | | | | + v--+ +--v 阅读全文

PostgreSQL记录中的null值是如何存储的

2020-10-27 09:10 by abce, 1628 阅读, 收藏, 编辑
摘要: 当向表中插入数据时,可以指定列的值为null。例如,有一张表t(i int,j int,k int),我们可以插入值(8,1,6),或将包含null值的(3,null,7)插入到表中。本文将探讨PostgrSQL中是如何存储null的一些技术细节。 PostgreSQL如何存储null值的? Pos 阅读全文

PostgreSQL 11中分区表的本地索引

2020-10-26 09:57 by abce, 2738 阅读, 收藏, 编辑
摘要: 在PostgreSQL 10中引入了声明式分区时,这是向前迈出的一大步。 但是,新的重要功能在PostgreSQL 10中不起作用,而现在在PostgreSQL 11中已解决。其中之一是本地分区索引。 为了更容易理解,我们从PostgreSQL 10中的示例开始。 postgresql 10: po 阅读全文

postgresql中like和ilike语句的性能提升

2020-10-23 08:58 by abce, 4727 阅读, 收藏, 编辑
摘要: LIKE和ILIKE是SQL的两个基本功能。人们在他们的应用程序中到处使用这些东西,因此从性能的角度来看这个主题是有意义的。PostgreSQL可以采取哪些措施来加快这些操作的速度,通常可以采取哪些措施要首先了解问题,其次才能获得更好的PostgreSQL数据库性能。 创建示例数据 在本文中,你将学 阅读全文

PMM2修改admin用户的密码

2020-10-22 08:30 by abce, 660 阅读, 收藏, 编辑
摘要: 使用docker安装Percona Monitoring and Management 2(PMM)之后,如果不想在首次登录的时候修改admin的密码。可以登录容器进行修改: docker exec -t pmm-server /bin/bash -c 'ln -s /srv/grafana /us 阅读全文

调整PostgreSQL的配置以便应对高负载的写操作

2020-10-21 08:46 by abce, 2609 阅读, 收藏, 编辑
摘要: 随着数据库的增长和从理论性验证到正式生产实例的扩展,数据库管理员和系统管理员总是会遇到各种各样的麻烦。 通常,Crunchy数据支持团队的工程师会帮助支持企业项目,这些项目从小的、理论验证系统开始,然后被推广到大规模生产用途。由于这些系统收到的流量负载超出了其原始的理论验证范围,因此在Postgre 阅读全文

CentOS7上为PostgreSQL11安装PostGIS

2020-10-16 08:44 by abce, 754 阅读, 收藏, 编辑
摘要: 安装环境:Cenots 7.5 + PostgreSQL11.9 GIS (Geographic Information Systems) 支持基于R-tree的GiST索引。分析和处理GIS对象。 1.增加EPEL资料库 yum -y install epel-release 2.安装PostGI 阅读全文

PostgreSQL安装的后续工作

2020-10-14 09:02 by abce, 283 阅读, 收藏, 编辑
摘要: 你已经在机器上安装了postgres,并且想要开始使用它。怎么使用呢? 要理解的关键点是,安装后期要做什么是有依赖的: ·依赖于操作系统。比如,windows或linux ·依赖于操作系统的分支。比如,debian或redhat ·依赖于是由软件包还是源码安装 让我们从所有安装都通用的最基本步骤开始 阅读全文

PostgreSQL的大对象以及空间使用 (3)

2020-10-12 08:58 by abce, 587 阅读, 收藏, 编辑
摘要: 如果没有关于vacuumlo的最后一篇文章,本系列将是不完整的。 在上一篇文章中,我们已经看到大对象被分成每个元组,每个元组包含2048个字节,每个chunk的行为与常规元组非常相似。 注意:在PostgreSQL中,借助TOAST技术,可以将大量数据与表一起存储。 大对象没有插入应用表中,但是以不 阅读全文

PostgreSQL的大对象以及空间使用 (2)

2020-10-11 10:22 by abce, 492 阅读, 收藏, 编辑
摘要: 在上一篇文章中,展示了插入大对象后,pg_largeobject表中有多少大对象使用空间。 让我们再深入研究一下: 该表有2个大对象(总共1024个记录): lob_test=# select pg_relation_size('pg_largeobject'); pg_relation_size 阅读全文
点击右上角即可分享
微信分享提示