
Postgres
文章平均质量分 80
azhegps
技术源于不断滴追求!
展开
-
PostgreSQL 允许远程访问设置方法
安 装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf。pg_hba.conf:配置对数据库的访问权限,postgresql.conf:配置Postgre原创 2016-10-11 16:03:07 · 21688 阅读 · 3 评论 -
PostgreSql 聚合函数的两种实现:HashAggregate与GroupAggregate
在Postgresql中聚合函数有两种实现方式:HashAggregate与GroupAggregate。 我们现在通过一个最简单的sql来分析这两种聚合的区别以及其应用场景。 select count(1) from pg_class group by oid;一、两种实现算法的比较: HashAggregate 对于hash聚...转载 2017-07-27 11:04:22 · 9717 阅读 · 0 评论 -
PostgreSql Btree索引
当表数据量越来越大时查询速度会下降,像课本目录一样,在表的条件字段上创建索引,查询时能够快速定位感兴趣的数据所在的位置。索引的好处主要有加速带条件的查询,删除,更新,加速JOIN操作,加速外键约束更新和删除的操作等,但是索引也不是只有好处没有坏处,创建索引时会锁表,不仅将数据写入表中,还要创建索引,因此会在一定程度上影响写的性能。Btree索引适合处理能够按顺序存储的数据的=,<,>...转载 2017-07-27 11:08:13 · 981 阅读 · 0 评论 -
PostgreSql Copy之表与文件之间的拷贝
postgresql提供COPY命令用于表与文件(和标准输出,标准输入)之间的相互拷贝,copy to由表至文件,copy from由文件至表。示例1.将整张表拷贝至标准输出test=# copy tbl_test1 to stdout;1 HA 122 ha 543示例2.将表的部分字段拷贝至标准输出,并输出字段名称,字段间使用','分隔test=...转载 2017-07-27 11:08:37 · 8453 阅读 · 1 评论 -
PostgreSql Gist索引
GiST的意思是通用的搜索树(Generalized Search Tree)。 它是一种平衡树结构的访问方法,在系统中作为一个基本模版,可以使用它实现任意索引模式。B-trees, R-trees和许多其它的索引模式都可以用GiST实现。上面一段高能的官方解释有点难以理解,暂时也不需要使用Gist实现其他的索引模式,就简单的介绍下Gist索引如何使用。与Btree索引比较的优缺点:优点:...转载 2017-07-27 11:09:06 · 1015 阅读 · 0 评论 -
PostgreSql 唯一索引,表达式索引,部分索引
一.唯一索引唯一索引字面上理解就是在索引上增加唯一约束,不允许出现索引值相同的行,目前只有Btree索引可以声明唯一索引,唯一键会自动创建唯一索引。测试表:test=# create table tbl_unique_index(a int, b int);CREATE TABLE示例1.创建唯一索引,相等数据只允许插入一行,NULL除外,因为NULL不等于NULL。 ...转载 2017-07-27 11:09:30 · 2731 阅读 · 0 评论 -
PostgreSql 索引失效
什么是索引失效?如果where过滤条件设置不合理,即使索引存在,且where过滤条件中包含索引列,也会导致全表扫描,索引不起作用。什么条件下会导致索引失效呢?1、任何计算、函数、类型转换2、!=3、NOT,相当于使用函数4、模糊查询通配符在开头5、索引字段在表中占比较高6、多字段btree索引查询条件不包含第一列7、多字段索引查询条件使用OR(有时也会走索引扫描,但查询效率不高)...转载 2017-07-27 11:10:55 · 9068 阅读 · 1 评论 -
PostgreSql 系统表 pg_stat_activity
postgres=# \d+ pg_stat_activity View "pg_catalog.pg_stat_activity" Column | Type | Modifiers | Storage | Description ----------------...转载 2017-09-01 11:04:38 · 4684 阅读 · 0 评论 -
PostgreSql 系统表 pg_stats
pg_stats是由pg_statistic系统表扩展而来的系统视图,记录的是每个表每个字段的统计信息,用于PostgreSQL优化器做执行计划选择的时候提供参考。名字 类型 引用 描述 schemaname name pg_namespace.nspname 包含此表的模式名字 tablename name pg_class.relna...转载 2017-09-01 11:05:21 · 791 阅读 · 0 评论 -
PostgreSql 系统表pg_enum
pg_enum表包含显示每个枚举类型值和标签的记录。名字 类型 引用 描述 oid oid 行标识符(隐藏属性; 必须明确选择) enumtypid oid pg_type.oid 拥有这个枚举值的pg_type记录的OID enumsortorder float4 这个枚举值在它的枚举类型中的排序位置...转载 2017-09-01 11:05:54 · 405 阅读 · 0 评论 -
PostgreSql 权限信息表information_schema.table_privileges
information_schema.table_privileges表记录着所有用户的权限信息。postgres=# \d+ information_schema.table_privileges View "information_schema.table_privileges" Column | ...转载 2017-09-01 11:06:25 · 4925 阅读 · 0 评论 -
PostgreSql 如何删除还有活动链接的数据库
在postgres中当我们执行:drop/alter database XXX的时候的时候,可能会提示: ERROR: database "testdb" is being accessed by other usersDETAIL: There are 3 other sessions using the database.这个意思是说,删除数据库失败,因为这里还有3个链接连接到该...转载 2017-10-24 13:48:04 · 1344 阅读 · 0 评论 -
PostgreSql 比较两个时间差大于 N个小时
摘要: PG 中时间想减后为interval ,比较两个时间大于某个小时或者分钟等可以直接通过interval来实现-- 判断两个时间差大于4个小时select timestamp '2013-11-11 10:00:00' - timestamp '2013-11-08 12:00:00' > interval '4 hour';-- 获取时间差的总体小时差 然后再判断mr...原创 2017-06-26 14:07:49 · 9797 阅读 · 0 评论 -
PostgreSql9.6 新增加“idle in transaction”超时空闲事务自动查杀功能
熟悉 PostgreSQL 的朋友应该知道 “idle in transaction” 进程,引发 idle in transaction 的原因很多,例如应用代码中忘记关闭已开启的事务,或者系统中存在僵死进程等,曾经看到过某个库中的 idle in transaction 进程存在一年有余,这类进程严重危害了数据库的安全,例如它会阻止 VACUUM 进程回收记录,造成表数据膨胀,同时它有可能引起...转载 2017-05-22 16:44:27 · 7339 阅读 · 1 评论 -
PostgreSql DO以及有条件的创建函数
例子:比如在数据库必须是UTF-8编码时,才创建某个函数,则可以将函数包裹在code中。DO$DO$DECLAREcodingvarchar;BEGINSELECTgetdatabaseencoding()INTOcoding;IFcoding='UTF8'THENEXECUTE'CREATEORREPLACEFUNCTIONpg_...原创 2016-10-11 16:35:41 · 1645 阅读 · 0 评论 -
PostgreSql 添加各种约束语法
1. 添加主键alter table goods add primary key(sid);2. 添加外键alter table orders add foreign key(goods_id) references goods(sid) on update cascade on delete cascade;on update cascade: 被引用行更新时,引用行自动更新;...原创 2016-10-26 17:28:52 · 2983 阅读 · 0 评论 -
PostgreSql 执行计划的解释
一个顺序磁盘页面操作的cost值由系统参数seq_page_cost (floating point)参数指定的,由于这个参数默认为1.0,所以我们可以认为一次顺序磁盘页面操作的cost值为1。下面osdba=# explain select * from t;QUERY PLAN———————————————————-Seq Scan on t (cost=0.00 ..4621.00...转载 2016-10-27 10:57:52 · 1146 阅读 · 0 评论 -
PostgreSql 外键
CREATE TABLE cities ( city varchar(20) primary key, location varchar(20));CREATE TABLE weather ( city varchar(20) references cities(city), wen...原创 2016-10-26 18:04:50 · 6303 阅读 · 0 评论 -
PostgreSql 数据库导入导出
pgsql是5432 导入整个数据库 psql -U postgres(用户名) 数据库名(缺省时同用户名) < /data/dum.sql 导出整个数据库 pg_dump -h localhost -U postgres(用户名) 数据库名(缺省时同用户名) >/data/dum.sql 导出某个表 pg_dump -h local...转载 2017-01-03 20:45:14 · 1434 阅读 · 0 评论 -
PostgreSql 在win7上安装详细步骤
PostgreSQL安装:一、windows下安装过程安装介质:postgresql-9.1.3-1-windows.exe(46M),安装过程非常简单,过程如下:1、开始安装:2、选择程序安装目录:注:安装 PostgreSQL 的分区最好是 NTFS 格式的。PostgreSQL 首要任务是要保证数据的完整性,而 FAT 和 FAT32 文件系统不能提供这样的可靠性保障...转载 2016-12-20 10:45:50 · 2206 阅读 · 0 评论 -
PostgreSql 安装和配置--Ubuntu
一、安装1、安装使用如下命令,会自动安装最新版,这里为9.5sudo apt-get install postgresql安装完成后,默认会:(1)创建名为"postgres"的Linux用户(2)创建名为"postgres"、不带密码的默认数据库账号作为数据库管理员安装完成后的一些默认信息如下:config /etc/postgresql/9.5/main d...原创 2017-12-04 22:00:04 · 774 阅读 · 0 评论