怎么使用PostgreSQL扩展函数
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"怎么使用PostgreSQL扩展函数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用PostgreSQL扩展函数"吧!例子.
千家信息网最后更新 2026年11月02日怎么使用PostgreSQL扩展函数
这篇文章主要讲解了"怎么使用PostgreSQL扩展函数",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用PostgreSQL扩展函数"吧!
例子
. ./env11.sh git clone https://github.com/MasaoFujii/pg_cheat_funcs cd pg_cheat_funcs/ USE_PGXS=1 make USE_PGXS=1 make install
postgres=# create extension pg_cheat_funcs ; CREATE EXTENSION
1、打印内存上下文
postgres=# select * from pg_stat_get_memory_context(); name | parent | level | total_bytes | total_nblocks | free_bytes | free_chunks | used_bytes --------------------------+--------------------+-------+-------------+---------------+------------+-------------+------------ TopMemoryContext | | 0 | 312552 | 11 | 40520 | 21 | 272032 dynahash | TopMemoryContext | 1 | 8192 | 1 | 1456 | 0 | 6736 TopTransactionContext | TopMemoryContext | 1 | 8192 | 1 | 7744 | 1 | 448 PL/pgSQL function | TopMemoryContext | 1 | 16384 | 2 | 7176 | 1 | 9208 dynahash | TopMemoryContext | 1 | 8192 | 1 | 560 | 0 | 7632 dynahash | TopMemoryContext | 1 | 8192 | 1 | 560 | 0 | 7632 dynahash | TopMemoryContext | 1 | 24528 | 2 | 2624 | 0 | 21904 dynahash | TopMemoryContext | 1 | 8192 | 1 | 2096 | 0 | 6096 dynahash | TopMemoryContext | 1 | 8192 | 1 | 1584 | 0 | 6608 dynahash | TopMemoryContext | 1 | 24576 | 2 | 10760 | 3 | 13816 RowDescriptionContext | TopMemoryContext | 1 | 8192 | 1 | 6896 | 0 | 1296 MessageContext | TopMemoryContext | 1 | 32768 | 3 | 10904 | 1 | 21864 dynahash | TopMemoryContext | 1 | 8192 | 1 | 560 | 0 | 7632 dynahash | TopMemoryContext | 1 | 32768 | 3 | 16832 | 8 | 15936 TransactionAbortContext | TopMemoryContext | 1 | 32768 | 1 | 32512 | 0 | 256 dynahash | TopMemoryContext | 1 | 8192 | 1 | 560 | 0 | 7632 TopPortalContext | TopMemoryContext | 1 | 8192 | 1 | 7664 | 0 | 528 PortalContext | TopPortalContext | 2 | 1024 | 1 | 592 | 0 | 432 ExecutorState | PortalContext | 3 | 49208 | 4 | 15576 | 3 | 33632 printtup | ExecutorState | 4 | 8192 | 1 | 7936 | 0 | 256 Table function arguments | ExecutorState | 4 | 8192 | 1 | 7936 | 0 | 256 ExprContext | ExecutorState | 4 | 8192 | 1 | 4536 | 0 | 3656 dynahash | TopMemoryContext | 1 | 16384 | 2 | 3512 | 2 | 12872 CacheMemoryContext | TopMemoryContext | 1 | 524288 | 7 | 20960 | 26 | 503328 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 1 | 1424 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 1 | 1424 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 1 | 1424 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 1 | 1424 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 1 | 1368 EventTriggerCache | CacheMemoryContext | 2 | 8192 | 1 | 7936 | 2 | 256 dynahash | EventTriggerCache | 3 | 8192 | 1 | 2624 | 0 | 5568 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 relation rules | CacheMemoryContext | 2 | 16384 | 5 | 7352 | 0 | 9032 index info | CacheMemoryContext | 2 | 2048 | 2 | 648 | 2 | 1400 index info | CacheMemoryContext | 2 | 2048 | 2 | 704 | 3 | 1344 index info | CacheMemoryContext | 2 | 1024 | 1 | 16 | 0 | 1008 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 592 | 3 | 1456 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 3072 | 2 | 1136 | 2 | 1936 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 704 | 3 | 1344 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 1024 | 1 | 16 | 0 | 1008 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 3072 | 2 | 1136 | 2 | 1936 index info | CacheMemoryContext | 2 | 3072 | 2 | 1136 | 2 | 1936 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 704 | 3 | 1344 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 728 | 1 | 1320 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 2 | 1424 index info | CacheMemoryContext | 2 | 2048 | 2 | 672 | 3 | 1376 index info | CacheMemoryContext | 2 | 2048 | 2 | 704 | 3 | 1344 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 624 | 2 | 1424 index info | CacheMemoryContext | 2 | 1024 | 1 | 16 | 0 | 1008 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 3072 | 2 | 1136 | 2 | 1936 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 728 | 1 | 1320 index info | CacheMemoryContext | 2 | 2048 | 2 | 728 | 1 | 1320 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 680 | 2 | 1368 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 728 | 1 | 1320 index info | CacheMemoryContext | 2 | 1024 | 1 | 48 | 0 | 976 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 704 | 3 | 1344 index info | CacheMemoryContext | 2 | 1024 | 1 | 16 | 0 | 1008 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 760 | 2 | 1288 index info | CacheMemoryContext | 2 | 1024 | 1 | 16 | 0 | 1008 index info | CacheMemoryContext | 2 | 2048 | 2 | 728 | 1 | 1320 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 index info | CacheMemoryContext | 2 | 2048 | 2 | 952 | 1 | 1096 WAL record construction | TopMemoryContext | 1 | 49768 | 2 | 6368 | 0 | 43400 dynahash | TopMemoryContext | 1 | 8192 | 1 | 2624 | 0 | 5568 MdSmgr | TopMemoryContext | 1 | 8192 | 1 | 7432 | 0 | 760 dynahash | TopMemoryContext | 1 | 8192 | 1 | 560 | 0 | 7632 dynahash | TopMemoryContext | 1 | 104120 | 2 | 2624 | 0 | 101496 ErrorContext | TopMemoryContext | 1 | 8192 | 1 | 7936 | 0 | 256 (121 rows)
2、文本压缩
postgres=# select pglz_compress(repeat(md5(random()::text),1024)); pglz_compress ------------------------------------------------------------------------------------------------------------------------------------- \x00800040006135663437636166003162353066626137006637356161363639003532316233336139ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f 20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f2 0ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f 20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ffff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20ff0f20e7 (1 row)
3、解压缩
pglz_decompress(bytea) postgres=# select pglz_compress(repeat(md5(random()::text),8)); pglz_compress -------------------------------------------------------------------------------------------- \x00010040003236666162656631003262323262636230006462656638616330003536343161383937010f20ce (1 row) postgres=# select pglz_decompress('\x00010040003236666162656631003262323262636230006462656638616330003536343161383937010f20ce'); pglz_decompress ------------------------------------------------------------------------------ 26fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22bcb0dbef8ac05641a89726fabef12b22 bcb0dbef8ac05641a897 (1 row)4、查看绑定变量QUERY的PLAN COSE。
postgres=# prepare a (name) as select * from pg_class where relname=$1;PREPAREpostgres=# select * from pg_cached_plan_source('a'); generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom --------------+-------------------+------------------+---------------+-------------- -1 | 0 | 0 | f | f(1 row)postgres=# execute a('abc'); relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhasoids | relhasrules | relhastriggers | relhassubclass | relrowsecurity | relforcerowsecurity | relispopulated | relreplident | relispartition | relrewrite | relfrozenxid | relminmxid | relacl | reloptions | relpartbound ---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+------------+-------------+----------------+----------------+----------------+---------------------+----------------+--------------+----------------+------------+--------------+------------+--------+------------+--------------(0 rows)postgres=# select * from pg_cached_plan_source('a'); generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom --------------+-------------------+------------------+---------------+-------------- -1 | 4.61208554676785 | 1 | f | f(1 row)postgres=# execute a('abc'); relname | relnamespace | reltype | reloftype | relowner | relam | relfilenode | reltablespace | relpages | reltuples | relallvisible | reltoastrelid | relhasindex | relisshared | relpersistence | relkind | relnatts | relchecks | relhasoids | relhasrules | relhastriggers | relhassubclass | relrowsecurity | relforcerowsecurity | relispopulated | relreplident | relispartition | relrewrite | relfrozenxid | relminmxid | relacl | reloptions | relpartbound ---------+--------------+---------+-----------+----------+-------+-------------+---------------+----------+-----------+---------------+---------------+-------------+-------------+----------------+---------+----------+-----------+------------+-------------+----------------+----------------+----------------+---------------------+----------------+--------------+----------------+------------+--------------+------------+--------+------------+--------------(0 rows)postgres=# select * from pg_cached_plan_source('a'); generic_cost | total_custom_cost | num_custom_plans | force_generic | force_custom --------------+-------------------+------------------+---------------+-------------- -1 | 9.22417109353571 | 2 | f | f(1 row)感谢各位的阅读,以上就是"怎么使用PostgreSQL扩展函数"的内容了,经过本文的学习后,相信大家对怎么使用PostgreSQL扩展函数这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
函数
学习
内容
上下
上下文
例子
内存
变量
就是
思路
情况
文本
文章
更多
知识
知识点
篇文章
跟着
问题
实践
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
河南云网互联网络科技有限公司
科技和互联网公司
与互联网科技公司
科技伦理 互联网公司
海南购全球互联网科技
佩信高科技互联网
昭通互联网科技选哪家
移动互联网年度科技创新
亳州好赞互联网科技有限公司
想开互联网科技公司怎么样
烟台灵鸽互联网科技有限公司
滨湖区互联网智能科技产品有哪些
深圳无忧互联网科技
黑云互联网科技有限公司
宇信科技在杭州互联网排第几
广州燕处互联网科技有限公司
米泉互联网科技专业怎么样
广州三三互联网科技有限公司
互联网对科技影响
颐高云石互联网科技
南京欣网互联网络科技有限公司
广州宏创互联网科技
成都互联网科技公司
顺玮阁互联网科技
互联网科技的未来发展
广西拼得多互联网科技有限公司
消费医药和互联网科技
中和天地互联网科技有限公司
区块链结合互联网科技
互联网科技股为什么大涨