PostgreSQL palloc0 函数优化
最近在查看 PostgreSQL 数据库中内存分配相关的代码时,我发现 palloc()
和 palloc0()
函数存在大量的冗余代码。本着减少冗余代码的想法,我将修改后的代码提交到社区,得到的反馈是这样修改会影响整体效率。本文简要分析一下这是如何影响效率的。
最近在查看 PostgreSQL 数据库中内存分配相关的代码时,我发现 palloc()
和 palloc0()
函数存在大量的冗余代码。本着减少冗余代码的想法,我将修改后的代码提交到社区,得到的反馈是这样修改会影响整体效率。本文简要分析一下这是如何影响效率的。
Go 语言的 net/http
包为我们提供了一个 HTTP 客户端和服务器的实现,通过它我们可以快速的搭建一个 HTTP 服务器,本文记录一下在编写 HTTP 服务器时关于设置 HTTP 响应头遇到的一个小问题。
当我们在使用 PostgreSQL 数据库并启用 statement_timeout
时,可以看到 setitimer()
函数的调用次数明显偏多。本文分析了 Thomas Munro 给出的关于 setitimer()
函数的优化。
最近将博客由 NexT-v5.x 迁移到 NexT-v8.x 版本,这其中有很多东西已将发生变化了。本文简要介绍一下如何在新版中加入近期文章的功能。NexT-v8.x 版本将模版文件由原来的 swig
变更为 njk
后缀,因此,之前的近期文章的功能不再适用,我们需要稍作修改。
目前在 Greenplum、MySQL 数据库中均支持 backtrace 功能,现在 PostgreSQL 13-devel 版本中也新增了这个功能,我们可以在服务器日志中记录堆栈信息。
本文将对该功能进行简要介绍。
PostgreSQL 数据库中提供的某些系统表是 Cluster 级别共享的,他们在数据库内部被称为 shared_relation
,本文就介绍一下 PostgreSQL 是如何创建共享表的。
本文记载了如何在 MacOS 平台制作 U 盘安装镜像,这里主要使用到了 hdiutil,diskutil 和 dd 三个命令。
今天在使用 ALTER SYSTEM
来修改 PostgreSQL 参数时遇到无法启动数据库的问题。如下所示:
1 | postgres=# ALTER SYSTEM SET shared_preload_libraries TO 'pg_buffercache,passwordcheck'; |
你是否也遇到了这样的问题呢?其实这都是由于我们先入为主的思想导致的,ALTER SYSTEM
支持以逗号分割的列表,而这类参数的修改不需要使用引号。因此,正确的使用方式如下:
1 | ALTER SYSTEM SET shared_preload_libraries TO pg_buffercache, passwordcheck; |
我们都知道 PostgreSQL 针对每个数据库集群实例,都会有一个唯一的标识符 - system identifier。那么这个标识符是如何生成的呢?本文将对其进行简要的分析。