Recent Posts

PostgreSQL 单机多实例on XFS 润滑性测试

3 minute read

背景 前面一篇将EXT4 单机多实例在使用cgroup限制IOPS时,出现了IO HANG, 即使使用了data=writeback问题依旧。 从D状态的进程打印的PSTACK可以看到,问题卡在ext4上面。 详见 《PostgreSQL 9.6 检查点SYNC_FILE_RANGE 在单机多实例下的IO H...

PostgreSQL 前世今生

less than 1 minute read

PIC下载 背景 PostgreSQL是40几年陈的产品,算是关系数据库中的老大哥,但是它依旧保持着飞速的迭代和发展。这是为什么呢?...

PostgreSQL 巧妙的数据采样方法

4 minute read

背景 因为线上数据库较大,通常我们可以通过数据采样来构建测试库。 数据采样除了需要对数据进行均匀的抽取之外,还可能有一种需求是对数据进行加密,例如需要隐藏或加密一些敏感字段的信息。 PostgreSQL 9.5开始支持tablesample的语法,参考如下 https://www.postgresql.or...

PostgreSQL 主机性能测试方法 - 单机单实例

4 minute read

背景 业界有一些通用的数据库性能测试模型,可以用来测试硬件在不同测试模型下的性能表现。 参考 http://www.tpc.org/ https://github.com/oltpbenchmark/oltpbench http://oltpbenchmark.com/ 本文主要以PostgreSQL为例,...

PostgreSQL 主机性能测试方法 - 单机多实例

5 minute read

背景 业界有一些通用的数据库性能测试模型,可以用来测试硬件在不同测试模型下的性能表现。 参考 http://www.tpc.org/ https://github.com/oltpbenchmark/oltpbench http://oltpbenchmark.com/ 本文主要以PostgreSQL为例,...

PostgreSQL pgbench SQL RT 与 事务RT 浅析

2 minute read

背景 使用pgbench测试数据库性能时,在输出的报告中,可以输出事务的平均RT,以及单条SQL的平均RT。 那么这两个有什么分别呢? 每行代表一个线程,被填充了颜色的部分表示从客户端发起SQL到SQL返回的时间窗口,没有填充颜色的部分表示线程的空闲时间。 如何统计事务 平均RT : 执行的事务数/...

Oracle 并行计算 JOIN HINT

2 minute read

背景 Oracle的并行查询在处理JOIN时,可以通过调整优化器的HINT,指定优化器在处理JOIN时表的分布与关联策略。 例如,两张表JOIN时,如果是HASH或者MERGE JOIN,可以使用HASH分片,然后每个并行的计算单元处理一个数据分片,达到提高效率的目的。 又或者可以将某个较小的表进行broad...

PostgreSQL 数据库开发规范

28 minute read

背景 PostgreSQL的功能非常强大,但是要把PostgreSQL用好,开发人员是非常关键的。 下面将针对PostgreSQL数据库原理与特性,输出一份开发规范,希望可以减少大家在使用PostgreSQL数据库过程中遇到的困惑。 目标是将PostgreSQL的功能、性能发挥好,她好我也好。 Postgr...

PostgreSQL Oracle 兼容性之 - 字符编码转换 CONVERT

1 minute read

背景 参考 https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm Oracle 中,可以将一个字符串从一个编码转换为另一个编码的输出。 convert(string, 目标字符集, 源字符集) 例如 ``` SEL...