摘要: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, 1042 阅读, 0 推荐, 收藏, 编辑
摘要:与Oracle相比,PostgreSQL对collation的支持依赖于操作系统。 以下是基于Centos7.5的测试结果 $ env | grep LC $ env | grep LANG LANG=en_US.UTF-8 使用initdb初始化集群的时候,就会使用这些操作系统的配置。 postg 阅读全文
windows下安装Python虚拟环境virtualenvwrapper-win
2020-11-12 08:33 by abce, 143 阅读, 0 推荐, 收藏, 编辑
摘要:1.使用pip进行安装pip install virtualenvwrapper-win 2.使用easy_install进行安装easy_install virtualenvwrapper-win 3.使用源码进行安装git clone git://github.com/davidmarble/v 阅读全文
PostgreSQL中的template0和template1库
2020-11-11 09:48 by abce, 1758 阅读, 2 推荐, 收藏, 编辑
摘要:postgresql中默认会有三个数据库:postgres、template0、template1。 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges + + + 阅读全文
postgresql中表或索引被创建之后统计信息会立即可用么?
2020-11-10 09:48 by abce, 399 阅读, 0 推荐, 收藏, 编辑
摘要:当我们创建表或者索引之后,他们的统计信息是自动可用么?更精确地描述一下:第一步,我们先创建或加载一个表;第二步,在表上创建一个索引。那我们是默认就有了可用的统计信息,或者还是需要等待一个autovacuum或手动analyze才可用呢? 我们测试一下吧。 首先禁用一下autovacuum,以免在后台 阅读全文
postgresql在何时创建表和索引文件
2020-11-09 08:41 by abce, 1163 阅读, 0 推荐, 收藏, 编辑
摘要:oracle中有个特性:deferred segment createion。那么在postgresql中,在创建表或者索引的时候,磁盘上对应的文件是立即创建还是插入第一行数据的时候创建呢? 来做个简单的测试。 postgres=# create table t1(a int); CREATE TA 阅读全文
PostgreSQL中index only scan并不总是仅扫描索引
2020-11-06 08:46 by abce, 1460 阅读, 2 推荐, 收藏, 编辑
摘要: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, 1500 阅读, 0 推荐, 收藏, 编辑
摘要:查看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, 6827 阅读, 3 推荐, 收藏, 编辑
摘要:postgresql中,用户创建的所有对象都被创建在指定的schema(或namespace)中。其他用户可能拥有、也可能不拥有访问这些对象的权限,甚至都不可以在对应的schema中创建对象。 从上面的表可以看出,用户(或角色)是全局对象,不是定义在数据库中,而是定义在实例的级别。schema是用户 阅读全文
PostgreSQL中的默认权限(default privileges)
2020-11-03 09:05 by abce, 2347 阅读, 0 推荐, 收藏, 编辑
摘要:有时候我们会遇到这种情况(这种情况并不少见):用户schema中有很多对象,并且你想授权题用户访问这些表。你可以通过grant直接授权,但是当对象属主创建新的对象呢?你可能还需要再次授权,但是postgresql提供一个解决方案。 postgres=# create user a password 阅读全文