PostgreSQL是被公认的功能最强的开源的经典大型关系型数据库,完整具备了经典关系型数据库强大功能,并不断发展与时俱进。同时PostgreSQL的发展也受到了很多基于PostgreSQL外部应用的影响,并且发展出了更多基于PostgreSQL的应用,例如PostGIS,它已经是在GIS领域中重要组件,它的开源社区规模已经超越了PostgreSQL开源社区规模。技术上PostGIS是PostgreSQL的一个扩展(extension),也就是插件,像PostGIS这样的插件已经在计算机相关的领域中都得到不同程度的应用,它成为PostgreSQL功能延展性的主要特点。
PostgreSQL插件的功能不仅体现在新增复杂的数据类型、索引等数据的基本功能上,这些基本功能也是GIS领域所特别需要的,并且PostgreSQL的插件可以完成包括分布式、异构数据访问等的各种高级功能。这使得PostgreSQL数据库不仅仅是一个传统的经典关系型数据库,并且通过插件的扩展功能,它完全可以满足今天互联网对于大数据应用的需求。
阅读PostgreSQL的源代码,您可以发现,PostgreSQL的许多功能也都通过插件的形式完成,也正是由于使用的插件的形式,使得这些插件功能基本不受PostgreSQL核心升级的影响,这也是PostgreSQL数据库能够持续发展的一个重要的原因。
以下是PostgreSQL数据库的主要的一些插件,后期我们逐步介绍各插件的一些功能以及应用,同时探讨这些组件对于实际应用的作用等。
插件名称 | 类别 | 描述 |
pg_stat_statements | 监控 | 追踪服务器执行SQL语句的执行统计信息 |
system_stats | 监控 | 用于观察OS层的信息 |
pg_stat_kcache | 监控 | 观察单条SQL语句使用资源(CPU)情况 |
pg_stat_monitor | 监控 | 综合pg_stat_statements和pg_stat_kcache功能 |
pgpro_stats | 监控 | 事件统计、采样配置、自动化监控 |
pgsentinel | 监控 | 活跃会话历史记录插件 |
pgsampler | 监控 | 性能数据采集插件 |
pg_top | 命令行 | 显示数据库系统中各个进程占用资源状况 |
pgcenter | 命令行 | 统计数据监控工具 |
pg_activity | 命令行 | 显示数据库系统中各个进程占用资源状况 |
pg_sysstat | 命令行 | 相对简陋的监控工具 |
pg_hint_plan | SQL插件 | 用于选择特定的执行计划,进行SQL调优 |
pg_query | SQL插件 | 识别风险SQL |
pg_plan_advsr | SQL插件 | 自动执行计划调整 |
hypopg | SQL插件 | 类似MySQL虚拟索引 |
sr_plan | SQL插件 | 保存、篡改、固定 执行计划,Oracle兼容 |
pg_parallizator | SQL插件 | 并行创建索引 |
pg_timetable | JOB插件 | 作业调度程序,提供了灵活的配置方式和许多高级功能 |
pg_cron | JOB插件 | 定时任务插件(类似于 Oracle 中的 DBMS_SCHEDULER) |
pg_agent | JOB插件 | 任务调度代理,能够基于复杂的调度计划运行多步骤的批处理、shell 脚本以及 SQL 命令 |
pgbouncer | 连接池 | 数据库的轻量级连接池 |
pgagroal | 连接池 | 高性能本地协议连接池 |
odyssey | 连接池 | 多线程连接池 |
citus | sharding | 分布式sharding插件 |
pg_shardman | sharding | 分库分表插件 |
plproxy | sharding | 水平拆分数据库插件 |
oracle_fdw | FDW | Oracle外部表插件 |
mysql_fdw | FDW | mysql外部表插件 |
mongo_fdw | FDW | mongo外部表插件 |
sqlserver_fdw | FDW | sqlserver外部表插件 |
file_fdw | FDW | 文件外部表插件 |
ADG | 其它 | 图数据库插件 |
pg_buffercache | 其它 | 观察buffer工具 |
pgstattuple | 其它 | 行级别的统计工具 |
pg_filedump | 其它 | 观察文件、日志,修改日志工具 |
pg_waldump | 其它 | 观察文件、日志,修改日志工具 |
pg_walminer | 其它 | 观察文件、日志,修改日志工具 |
pg_fix | 其它 | 观察文件、日志,修改日志工具 |
pgtrashcan | 其它 | 垃圾回收站工具 |
pg_timeout | 其它 | 空闲会话超时工具 |
pgcrypto | 其它 | 数据加密模块 |
pg_audit | 其它 | 审计功能插件 |
pg_log_userqueries | 其它 | 审计功能插件 |
pgreplay | 其它 | 审计功能插件 |
pageinspect | 其它 | 内窥数据库BLOCK的内容 |
passwordcheck | 其它 | 密码复杂度检测 |
pg_buffercache | 其它 | 统计数据库shared buffer内容工具 |
pgcrypto | 其它 | 加密插件 |
pg_freespacemap | 其它 | 观察数据库fsm文件内容工具 |
pgrowlocks | 其它 | 行锁统计工具 |
pgstattuple | 其它 | 记录级别统计信息工具 |
pg_trgm | 其它 | 模糊查询、相似文本查询工具 |
pg_visibility | 其它 | 观察数据库block的vm标签值工具 |
pg_prewarm | 其它 | 重启数据库预热工具 |
pg_fincore | 其它 | 重启数据库预热工具 |
tablefunc | 其它 | 行列转换工具 |
auto_explain | 其它 | 计划执行工具 |
pg_show_plans | 其它 | 计划执行工具 |
zhparser | 其它 | 中文分词工具 |
pg_jieba | 其它 | 中文分词工具 |
pg_trgm | 其它 | 模糊查询工具 |
pg_bigm | 其它 | 模糊查询工具 |
pgroonga | 其它 | 模糊查询工具 |
pg_similarity | 其它 | 相似查询工具 |
cube | 其它 | 相似查询工具 |
rum | 其它 | 相似查询工具 |
pg_pathman | 其它 | 分区工具 |
pg_wait_sampling | 其它 | 等待事件采样工具 |
citext | 其它 | 大小写工具 |
pg_query_state | 其它 | 后台语句执行情况工具 |
session_exec | 其它 | 失败超过次数自动锁定工具 |
postgis | 其它 | 地理空间数据工具 |
pg_readonly | 其它 | 设为只读 |
pg_tt | 其它 | 全局临时表工具 |
pg_dropbuffer | 其它 | 删除buffer |
pg_dropcache | 其它 | 删除cache |
set_user | 其它 | 访问控制插件 |
pg_permissions | 其它 | 访问控制插件 |
pg_restrict | 其它 | 访问控制插件 |
diskquota | 其它 | 限制用户所能使用的数据库资源工具 |
pg_prioritize | 其它 | 进程优先级调度工具 |
sql_firewall | 其它 | SQL防火墙 |
auth_delay | 其它 | 防破解的安全工具 |
timescaledb | 其它 | 时序数据库插件 |
md5hash | 其它 | 加密压缩工具 |
gzip | 其它 | 加密压缩工具 |
pgzstd | 其它 | 加密压缩工具 |
ddlx | 其它 | 获取DDL语句工具 |
pgddl | 其它 | 获取DDL语句工具 |
uuid-ossp | 其它 | uuid生成工具 |
pipelindb | 其它 | 流式计算工具 |
orafce | 其它 | Oracle兼容工具 |
pg_roaringbitmap | 其它 | 位图压缩工具 |
pg_repack | 其它 | 冻结、重建、垃圾回收工具 |
pg_sequeeze | 其它 | 冻结、重建、垃圾回收工具 |
pg_awr | 其它 | 性能分析工具 |
pg_profile | 其它 | 性能分析工具 |
wal2json | 其它 | 逻辑复制工具 |
wal2mongo | 其它 | 逻辑复制工具 |
decoder_raw | 其它 | 逻辑复制工具 |
pglogical | 其它 | 逻辑复制工具 |
decoderbufs | 其它 | 逻辑复制工具 |
zedstore | 其它 | 行列混合存储工具 |
undam | 其它 | undo access method存储引擎 |
zheap | 其它 | 有效处理UPDATE的存储引擎 |
pgpool | 其它 | 读写分离、负载均衡工具 |
瀚高数据库是基于PostgreSQL的开源定制的国产数据库产品,它良好的继承了PostgreSQL的各种功能和特点,当然各种PostgreSQL的插件也能够在瀚高数据库的产品上完美使用,这为瀚高数据库的用户和应用开发商提供了更广阔的数据应用的基础,同时瀚高已经基于目前的插件做了更进一步产品化的开发,并且完全自主研发了符合用户需求的插件(后期我们也将做进一步的介绍),未来瀚高将根据国内用户不断增长的需求推出更多更有实际意义的数据库应用插件为国产化新系统做出自身应有的贡献。




