PostgreSQL中Checkpoint和VACUUM的性能调优方法

摘要:在写入频繁复杂的系统上,Checkpoint性能调优对于获得良好性能至关重要。然而,检查点是我们经常在社区邮件列表和客户性能调整评估期间容易概念混淆和配置错误的技术点之一。
基于邮件列表和所支持客户得到的结论,PostgreSQL常见的第二个性能问题是autovacuum。因此,我们跟进关于autovacuum调校的帖子。这里将简要地解释一下必要的理论,包括死元组,膨胀以及autovacuum如何处理它,但这篇博文的主要焦点是有关autovacuum调校的配置选项,经验法则等。

Continue reading "PostgreSQL中Checkpoint和VACUUM的性能调优方法"

10分钟搭建PostgreSQL+wordpress博客,真香!

wordpress一直是世界上最流行最好的博客系统,它一直使用MySQL作为存储数据库。最近两三年PostgreSQL这么火爆,能不能用PGSQL作为wordpress的存储数据库呢?本文描述在10分钟左右便能使用nginx+wordpress+postgresql搭建自己的博客系统的方法。

Continue reading "10分钟搭建PostgreSQL+wordpress博客,真香!"

[翻译]PostgreSQL中的并行查询

现代CPU的内核数量愈发可观。多年来,应用程序一直在向数据库并行发送查询。如果查询处理许多行数据,使用多核的能力有助于查询更快地执行。PostgreSQL中的并行查询允许我们利用多核来更快地完成报表查询(reporting queries)。并行查询功能在9.6中实现,从PostgreSQL 9.6开始,报表查询能够并行使用多核,高效完成查询。

并行查询执行的初始实现花了三年时间。并行的支持需要在许多查询执行阶段进行代码更改。PostgreSQL 9.6为进一步的代码改进创建了一个基础架构。更高版本则扩展了对其他查询类型的并行执行支持。

Continue reading "[翻译]PostgreSQL中的并行查询"

使用upsert语句减少应用与数据库交互

在开发过程中,经常会遇到一种场景:先判断表中是否存在某一行数据,如果存在,更新它,如果不存在,插入它。这种场景的代码写起来比较繁琐,还会增加一次数据库的交互。使用upsert语句能极大的简化这种操作
,本文将介绍如何使用PostgreSQL upsert功能插入或更新数据。

Continue reading "使用upsert语句减少应用与数据库交互"

在postgresql.conf中增加自定义配置项

PostgreSQL提供了postgresql.conf这个配置文件,通过它可以配置PostgreSQL启动、运行、性能优化、主备等各项参数,是PostgreSQL的核心配置文件。笔记简单分析了PostgreSQL是如何创建、应用、变更postgresql.conf的各种配置项,以及如何增加自定义的配置项。
先从PostgreSQL的启动开始说起。老生常谈,PostgreSQL在启动时,首先会启动一个Postmaster主进程,Postmaster主进程的入口函数PostmasterMain在初始化内存环境之后便进入处理数据库各项参数的GUC模块。

Continue reading "在postgresql.conf中增加自定义配置项"

搭建PostgreSQL源码调试环境

本文使用Xming、Putty和VMWare几款工具,在Windows桌面环境调用Ubuntu虚拟机上的图形界面进行PostgreSQL源码的调试。文中的所有步骤适合真机Ubuntu系统,只是所有图形界面的调用是在Windows桌面环境下。这样做,和直接在Ubuntu虚拟机中进行调试,并没有什么区别,只是我个人比较喜欢Windows下的一些工具的界面,如VISIO2013,Office2013,比起Libreoffice还是要方便美观很多。如果是linux用户,可以跳过配置xshell部分即可。

Continue reading "搭建PostgreSQL源码调试环境"