目前开发中用到的都是PostgreSQL的一些基本的功能,无意间查到PostgreSQL还支持Extension,不仅源码包中自带有Extension,还有一些其他非官方的Extension。现在不用,记录一下,以后碰到问题时希望自己能想起来,也是一个思路吧。

pg_partman 是 PostgreSQL 的一个扩展插件,用于创建和管理基于时间或者基于序列的表分区。也支持多级子分区。

PG-Strom 是 PostgreSQL 的一个扩展,作为 custom-scan provider。PG-Strom 的目的是利用其庞大的并行执行能力,解放 GPU 设备的一些 CPU 密集工作流。GPU 在处理器核心数量(通常是几百 - 几千)和更大的 RAM 带宽(通常比 CPU 大几倍容量)上有优势。在同时处理大规模数值操作的时候最高效。

查了一下,甚至有些支持中文分词,和ES的功能一样了,我觉得入库速度上和查询速度上和ES应该还达不到一个数量级。

原文:https://blog.csdn.net/u012736152/article/details/81874884

Postgresql官方的建议是单表大小超过了服务器内存大小可以考虑分区(大概的了解了下按照现代的服务器物理性能,单表大小不超过32GB,两千万记录)。

postgresql在9.6以前的版本就支持分区,但都是基于触发器性能并不是很好,pg10目前内置了分区但根据pg社区里的一些测试看出pg10分区性能不如pg_pathman。这里主要测试pg_pathman的range分区

   原文链接: https://blog.csdn.net/pg_hgdb/article/details/79490509

  

  PostgreSQL被设计为易于扩展。因此,加载到数据库中的扩展功能就可以像内置的特性一样运行。
  与源代码一起发布的contrib/ 目录包含一些扩展。扩展是独立开发的,比如PostGIS。甚至PostgreSQL复制解决方案也可以在外部开发。

  例如,Slony-I是一个受欢迎的主/备用复制解决方案,它是独立于核心项目开发的。

  PG源代码中包含的扩展列表参考:
  https://www.postgresql.org/docs/9.6/static/contrib.html

  PostgreSQL引入了一种方式来安装contrib模块,称为扩展(extensions)。
  此方法适用于所有使用扩展规范构建的contrib模块,包括如下:
  扩展SQL文件( extension_name.sql )
  扩展控制文件 ( extension_name.control )
  扩展库文件(extension_name.so)

  找到系统中的contrib模块
  检查你是否安装了contrib模块的一个好方法是查看pgbench程序是否可用。pgbench是安装了完整程序的少数contrib组件之一,而不仅仅只是你可以使用的一个脚本。以下是在UNIX系统中检查pgbench的示例:
  $ pgbench -V

  pgbench (PostgreSQL) 9.6

  在大多数Linux系统中,如果用户使用的是RPM或DEB打包版本的PostgreSQL,则可选的postgresql-contrib软件包中包含所有contrib模块及其关联的安装程序脚本。如果尚未安装,你可能需要使用yum,apt-get或类似的机制添加此软件包。在Solaris系统上,这个软件包名为SUNWpostgr-contrib。

  我们来看下面的命令,请注意必须用超级用户执行:
  CREATE EXTENSION extension_name: 此命令将安装一个名为extension_name的新扩展
  ALTER EXTENSION extension name: 此命令将更改扩展名,大多用于升级扩展。
  DROP EXTENIONS extension_name: 在清理操作完成后,此命令用于删除一个扩展。

  以上命令不能执行或执行报异常,一种可能是contrib模块没有执行编译安装,可以到contrib/目录下执行

  make&make install完成编译安装后在尝试执行以上命令。

  示例:
  cd /software/postgresql-9.5.7/contrib
  make
  make install

  testdb=# create extension pg_buffercache;
  CREATE EXTENSION

  testdb=# \dx
                        List of installed extensions
        Name      | Version |   Schema   |           Description           
  ----------------+---------+------------+---------------------------------
   pg_buffercache | 1.1     | public     | examine the shared buffer cache
   pgstattuple    | 1.3     | public     | show tuple-level statistics
   plpgsql        | 1.0     | pg_catalog | PL/pgSQL procedural language

  (3 rows)

  这里新添加的扩展属于public模式,另外pg_catalog这个schema是PostgreSQL默认的元数据schema,所有的元数据都在这里。创建在pg_catalog里面的扩展优先级最高,所有用户可见。

  可以运行如下指令指定或修改扩展的所属模式:

  create extension extension_name with schema pg_catalog;
  alter extension extension_name set schema pg_catalog;

  示例:
  testdb=# alter extension pg_buffercache set schema pg_catalog;
  ALTER EXTENSION

  testdb=# \dx
                        List of installed extensions
        Name      | Version |   Schema   |           Description           
  ----------------+---------+------------+---------------------------------

  pg_buffercache | 1.1     | pg_catalog | examine the shared buffer cache
   pgstattuple    | 1.3     | public     | show tuple-level statistics
   plpgsql        | 1.0     | pg_catalog | PL/pgSQL procedural language

  testdb=# drop extension pg_buffercache ;
  DROP EXTENSION

  testdb=# \dx
                     List of installed extensions
      Name     | Version |   Schema   |         Description          
  -------------+---------+------------+------------------------------
  pgstattuple | 1.3     | public     | show tuple-level statistics
  plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language

  (2 rows)
  扩展被添加到每个登录的数据库上,如果让每个数据库都可调用扩展模块,需要再每个库上执行create extension,也可以在模板库template1 上创建后,作为新建数据库的拷贝。
  除了PostgreSQL核心自带的程序、contrib模块和pgFoundry上提供的软件之外,还可以从互联网上获取许多其他程序,以使PostgreSQL更易用和更强大。

PostgreSQL之 使用扩展Extension的更多相关文章

  1. 【转帖】PostgreSQL之 使用扩展Extension

    PostgreSQL之 使用扩展Extension https://www.cnblogs.com/lnlvinso/p/11042677.html 挺好的文章.自己之前没有系统学习过 扩展.. 目前 ...

  2. [转]PostgreSQL Replication之扩展与BDR

    原文:https://www.cnblogs.com/xmzzp/p/6284300.html postgres 实现master, slave ,且master是多主. -------------- ...

  3. Objective-C分类 (category)和扩展(Extension)

    1.分类(category) 使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以 ...

  4. 【iOS】Swift扩展extension和协议protocol

    加上几个关节前Playground摘要码进入github在,凝视写了非常多,主要是为了方便自己的未来可以Fanfankan. Swift语法的主要部分几乎相同的. 当然也有通用的.运算符重载.ARC. ...

  5. Objective-C语法之扩展(Extension)的使用

    Objective-C 2.0增加了Class Extension用于解决两个问题: 可声明私有可读写的属性,而在类的声明中是同名的公开只读属性,从而来支持公开只读.私有可读写的属性 可声明私有方法: ...

  6. Objective-C 类别(category)和扩展(Extension)

    1.类别(category) 使用Object-C中的分类,是一种编译时的手段,允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以 ...

  7. 分类(Category)的本质 及其与类扩展(Extension) /继承(Inherit)的区别

    1.分类的概念 分类是为了扩展系统类的方法而产生的一种方式,其作用就是在不修改原有类的基础上,为一个类扩展方法,最主要的是可以给系统类扩展我们自己定义的方法. 如何创建一个分类?↓↓ ()Cmd+N, ...

  8. iOS中 分类(category)与扩展(Extension)的区别?

    1.分类(category)的作用 (1).作用:可以在不修改原来类的基础上,为一个类扩展方法.(2).最主要的用法:给系统自带的类扩展方法. 2.分类中能写点啥? (1).分类中只能添加“方法”,不 ...

  9. PostgreSQL Replication之扩展与BDR

    在这一章中,将向您介绍一个全新的技术,成为BDR.双向复制(BDR),在PostgreSQL的世界里,它绝对是一颗冉冉升起的新星.在不久的将来,许多新的东西将会被看到,并且人们可以期待一个蓬勃发展的项 ...

随机推荐

  1. PHP mysqli_field_seek() 函数

    定义和用法 mysqli_field_seek() 函数把字段指针设置为指定字段的偏移量. 设置结果集中第一个字段(列)的字段指针,然后通过 mysqli_fetch_field() 获取字段信息并输 ...

  2. kubernetes Configmap secret的使用

    kubernetes configmap 核心作用是让配置信息和镜像解耦,pod可以使用configmap的数据生成配置文件.如果后端的pod配置文件要改变时,只需要更改下configmap里面的数据 ...

  3. 【luoguP1196】 [NOI2002]银河英雄传说--边带权并查集 ,

    题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压顶 ...

  4. 【redis 学习系列】API的理解与使用(三)

    4.列表 列表(list)类型是用来存储多个有序的字符串,如图2-18所示,a.b.c.d.e五个元素从左到右组成一个有序列表,列表中的每个字符串称为元素,一个列表最大可以存储2^32-1个元素.在R ...

  5. python 二叉搜索树相关代码

    class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None class Ope ...

  6. Netfilter 之 钩子函数注册

    通过注册流程代码的分析,能够明确钩子函数的注册流程,理解存储钩子函数的数据结构,如下图(点击图片可查看原图): 废话不多说,开始分析: nf_hook_ops是注册的钩子函数的核心结构,字段含义如下所 ...

  7. Nginx之配置文件的解析

    1. ngx_command_t 为了统一配置项目的解析,Nginx 定义了如下数据类型对所有的 Nginx 配置项进行了统一的描述. typedef struct ngx_command_s ngx ...

  8. mp3收藏

    [程序员一个]一人饮酒醉 https://kg2.qq.com/node/play?s=lW1J2-lrkrR3klvD&shareuid=619598862d2a31893d&top ...

  9. dts是如何来描述iommu与PCI(e)之间的关系?

    1. 在一颗树的根下每个PCI(e)设备被它的请求id(AKA RID)独一无二的标识,一个请求ID由三部分组成,总线号,设备号和功能号,如: Bits [15:8] 是总线号 Bits [7:3]是 ...

  10. Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录(转)

    之前已详细介绍了Ceph分布式存储基础知识,下面简单记录下Centos7使用Ceph-deploy快速部署Ceph环境:1)基本环境 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...