背景 監控、優化、診斷 cpu, io消耗監控https://github.com/powa-team/pg_stat_kcache where條件過濾性統計https://github.com/powa-team/pg_qualstats cgroup , /proc 系統級指標統計https:/ ...
背景
監控、優化、診斷
cpu, io消耗監控
https://github.com/powa-team/pg_stat_kcache
where條件過濾性統計
https://github.com/powa-team/pg_qualstats
cgroup , /proc 系統級指標統計
https://github.com/CrunchyData/pgnodemx
pg_logging, log buffer read
價值: 讀pip管道中的log內容, 不需要寫雙份日誌
https://github.com/postgrespro/pg_logging
當前正在執行sql的backend的狀態統計
https://github.com/postgrespro/pg_query_state
執行計劃固化和篡改
https://github.com/postgrespro/sr_plan
等待事件採樣統計
https://github.com/postgrespro/pg_wait_sampling
系統級監控統計
https://github.com/EnterpriseDB/system_stats
pgmetrics
https://github.com/digoal/blog/blob/master/201810/20181001_03.md
csvlog 分析, pgbadger
http://pgbadger.darold.net/
《PostgreSQL DBA最常用SQL》
https://github.com/digoal/blog/blob/master/202005/20200509_02.md
《PostgreSQL 活躍會話歷史記錄插件 - pgsentinel 類似performance insight》
https://github.com/digoal/blog/blob/master/202003/20200324_25.md
https://github.com/digoal/blog/blob/master/201901/20190125_02.md
pg_hint_plan, 執行計劃hint
http://pghintplan.osdn.jp/pg_hint_plan.html
自動執行計劃優化, pg_plan_advsr
https://github.com/digoal/blog/blob/master/202003/20200324_33.md
PostgreSQL dba常用擴展函數庫 - pg_cheat_funcs
https://github.com/digoal/blog/blob/master/202003/20200324_41.md
資料庫job功能 pg_cron
https://github.com/digoal/blog/blob/master/201305/20130531_01.md
pg_pathman, 分區表性能提升, 自動分區, 自動增加分區等
https://github.com/postgrespro/pg_pathman
功能
postgis , 全球最流行的GIS擴展功能模塊
http://postgis.org/
h3模塊
https://github.com/dlr-eoc/pgh3
pgrouting, 圖路由功能
https://pgrouting.org/
《PostgreSQL MOD資料庫 MobilityDB - GIS 移動對象處理資料庫》
https://github.com/digoal/blog/blob/master/202003/20200324_24.md
開源圖像識別, imgsmlr
https://github.com/digoal/blog/blob/master/201811/20181129_01.md
https://github.com/postgrespro/imgsmlr
pg_roaringbitmap, 用戶圈選、實時畫像、相似用戶擴選功能 . 分析場景功能插件,應用於實時精準營銷系統
https://github.com/digoal/blog/blob/master/201911/20191118_01.md
timescaledb 時序資料庫引擎
https://github.com/digoal/blog/blob/master/201804/20180420_01.md
https://github.com/timescale/timescaledb
pg_prometheus, IoT常用, 監控產品集成到timescaledb和prometheus
https://github.com/timescale/pg_prometheus
機器學習 madlib
http://madlib.apache.org/
rdkit 化學插件, 化學分析行業應用
https://github.com/digoal/blog/blob/master/202003/20200326_06.md
https://github.com/digoal/blog/blob/master/201911/20191125_01.md
文本處理插件 pg_bigm, PGroonga. 任意內容模糊搜索(包括單字和雙字的模糊查詢)
https://github.com/digoal/blog/blob/master/202003/20200330_01.md
《[直播]在資料庫中跑全文檢索、模糊查詢SQL會不會被開除?》
pg_trgm, 實時模糊查詢、相似文本查詢
https://github.com/digoal/blog/blob/master/201809/20180904_01.md
pg_jieba 中文分詞
https://github.com/digoal/blog/blob/master/201607/20160725_02.md
pg_scws 中文分詞
https://github.com/jaiminpan/pg_scws
zhparser 中文分詞
https://github.com/digoal/blog/blob/master/201603/20160310_01.md
smlar, 多值類型相似查詢, 支持cosine, overlap等相似演算法, 例如 標簽交叉率相似度, 用戶畫像相似圈選
http://sigaev.ru/git/gitweb.cgi?p=smlar.git;a=summary
hll, 近似HASH值, 高效UNIQUE近似比對、計算, 滑窗分析. 思想上類似bloom演算法, 每個value映射到hash值的某些bit上, 用若幹bit位的占位是否為1表示這個value是否存在.
https://github.com/citusdata/postgresql-hll
《[視頻直播]億級用戶量的實時推薦資料庫到底要幾毛錢?》
orafce, 常用Oracle相容類型、函數、包
https://github.com/digoal/blog/blob/master/201603/20160324_01.md
pgcrypto, 數據加密模塊
https://www.postgresql.org/docs/current/pgcrypto.html
採樣查詢, 隨機數據查詢, 比offset random性能提升1萬倍
tsm_system_rows
tsm_system_time
https://github.com/digoal/blog/blob/master/202005/20200509_01.md
rum, 加強版倒排索引, 多值類型(數組、文本向量等)檢索加速, 任意欄位組合搜索索引過濾
https://github.com/postgrespro/rum
https://github.com/digoal/blog/blob/master/201907/20190706_01.md
zombodb: 創建基於es的索引, 加速搜索, 一種全新解決方案, 降低用戶開發成本, 簡化應用架構, 解決搜索數據同步問題、延遲等痛點.
https://github.com/zombodb/zombodb
https://github.com/digoal/blog/blob/master/201710/20171001_06.md
阿裡雲pase, 圖像識別, 向量檢索, 相似特征圈選. 千萬級別毫秒響應
https://github.com/digoal/blog/blob/master/202004/20200424_01.md
sql審計sql audit
https://github.com/digoal/blog/blob/master/201505/20150515_01.md
連接池
pgbouncer
http://www.pgbouncer.org/
《PostgreSQL 多線程連接池 - Scalable PostgreSQL connection pooler odyssey》
https://github.com/digoal/blog/blob/master/201906/20190624_01.md
pgagroal
https://github.com/digoal/blog/blob/master/202003/20200320_02.md
外部訪問
阿裡雲oss_fdw冷熱分離存儲
https://github.com/digoal/blog/blob/master/202001/20200108_01.md
其他fdw外部表彙總
https://wiki.postgresql.org/wiki/Foreign_data_wrappers
外部數據源訪問 dblink
pg, oracle, mysql, sqlite dblink plus 打通多種資料庫, 解決大型企業跨數據源訪問問題(傳統企業尤為普遍)
https://github.com/digoal/blog/blob/master/202003/20200324_07.md
外部數據訪問 udf, 直接使用sql操作其他資料庫
memcached
https://github.com/ohmu/pgmemcache
redis
https://github.com/digoal/blog/blob/master/202003/20200326_09.md
sharding
plproxy
https://plproxy.github.io/
citus
https://github.com/citusdata/citus
讀寫分離
pgpool
http://www.pgpool.org/
《阿裡雲RDS PostgreSQL 12 + pgpool 的讀寫分離配置》
《PostgreSQL druid 多個讀節點的jdbc loadbalance負載均衡連接串配置》
https://github.com/digoal/blog/blob/master/202002/20200214_03.md
《PostgreSQL libpq|jdbc 驅動層 load balance 與 failover》
https://github.com/digoal/blog/blob/master/201910/20191027_01.md
《PostgreSQL jdbc multi-host 配置與簡單HA、Load Balance實現》
https://github.com/digoal/blog/blob/master/201806/20180614_02.md
異構遷移
oracle 2 pg
http://www.ora2pg.com/
《PostgreSQL pgloader - 一鍵遷移 MySQL SQLite MS SQL Redshift, csv dbf ixf archive》
https://github.com/digoal/blog/blob/master/202003/20200324_02.md
日常維護
線上收縮膨脹空間
https://github.com/reorg/pg_repack
存儲
zedstore, 行列混合存儲, 更好的支持分析場景(cpu vector 批量計算, 列存儲, 壓縮效率)
https://github.com/greenplum-db/postgres/tree/zedstore/src/backend/access/zedstore
undam, UNDO存儲引擎, 更好的支持update, 減輕膨脹
https://github.com/postgrespro/undam
zheap, UNDO存儲引擎, 更好的支持update, 減輕膨脹
https://github.com/EnterpriseDB/zheap
PostgreSQL appendonly 壓縮 存儲引擎 - pg_cryogen, 更好的支持分析場景(cpu vector 批量計算, 列存儲, 壓縮效率)
https://github.com/digoal/blog/blob/master/202003/20200324_10.md
PostgreSQL LSM-tree 引擎 - VidarDB (baseon rocksdb) , 更高的插入效率, 犧牲查詢效率
https://github.com/digoal/blog/blob/master/202003/20200324_03.md
https://en.wikipedia.org/wiki/Log-structured_merge-tree
內置插件
https://www.postgresql.org/docs/current/contrib.html
用得比較多的插件:
auth_delay, 防止暴力破解
auto_explain, 將慢sql的執行計劃寫入日誌
btree_gin, 普通欄位支持gin倒排索引
btree_gist, 普通欄位支持gist索引
citext, 忽略大小寫的數據類型
dblink, 不解釋
earthdistance, 輕量化地球模型類型
file_fdw, 以外部表的形式讀寫文件
fuzzystrmatch, 語音模糊搜索
intagg, 整型聚合功能擴展
intarray, 整型數組GIST索引擴展功能
lo, 大對象處理
pageinspect, 內窺資料庫BLOCK的內容
passwordcheck, 密碼複雜度檢測
pg_buffercache, 統計資料庫shared buffer的內容
pgcrypto, 加密插件
pg_freespacemap, 觀察資料庫fsm文件內容
pgrowlocks, 行鎖統計
pgstattuple, 記錄級別統計信息觀察
pg_trgm, 模糊查詢, 相似文本查詢
pg_visibility, 觀察資料庫block的vm標簽值(all visibility, frozen, dirty等)
postgres_fdw, postgresql外部表
spi, 一些常用的跟蹤觸發器函數, 例如最後變更事件跟蹤
test_decoding, 邏輯複製decoder
tsm_system_rows, 採樣擴展模塊
tsm_system_time, 採樣擴展模塊
uuid-ossp, UUID生成模塊
xml2, XML類型模塊
pg_stat_statements, 觀察資料庫的sql運行統計信息, 例如top sql
cube, cube類型, 支持多種距離排序演算法, 也可以用於相似向量搜索
ltree, 樹類型
pg_prewarm, buffer預熱功能
tablefunc, 行列變換插件
其他請參考
《未來資料庫方向 - PostgreSQL 有價值的插件、可改進功能、開放介面 (202005)》
作者丨digoal
本文來自博客園,作者:古道輕風,轉載請註明原文鏈接:https://www.cnblogs.com/88223100/p/The-most-common-plug-ins-of-PostgreSQL.html