zoukankan      html  css  js  c++  java
  • PostgreSQL之 使用扩展Extension

       目前开发中用到的都是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更易用和更强大。

  • 相关阅读:
    【AS3代码】滚动的小球
    【AS3代码】颜色拾取器
    【AS3代码】添加/删除XML子元素及属性
    【AS3代码】音乐波纹
    【AS3代码】访问/修改XML子元素和属性
    【AS3代码】擦窗户效果(也就是流行的妄撮游戏)
    【AS3代码】动态时钟
    【AS3代码】加载XML数据
    【AS3代码】正则表达式的各种用法和小实例
    【AS3代码】九宫格小游戏
  • 原文地址:https://www.cnblogs.com/lnlvinso/p/11042677.html
Copyright © 2011-2022 走看看