PostgreSQL 单机多实例on XFS 润滑性测试
背景 前面一篇将EXT4 单机多实例在使用cgroup限制IOPS时,出现了IO HANG, 即使使用了data=writeback问题依旧。 从D状态的进程打印的PSTACK可以看到,问题卡在ext4上面。 详见 《PostgreSQL 9.6 检查点SYNC_FILE_RANGE 在单机多实例下的IO H...
背景 前面一篇将EXT4 单机多实例在使用cgroup限制IOPS时,出现了IO HANG, 即使使用了data=writeback问题依旧。 从D状态的进程打印的PSTACK可以看到,问题卡在ext4上面。 详见 《PostgreSQL 9.6 检查点SYNC_FILE_RANGE 在单机多实例下的IO H...
PIC下载 背景 PostgreSQL是40几年陈的产品,算是关系数据库中的老大哥,但是它依旧保持着飞速的迭代和发展。这是为什么呢?...
背景 因为线上数据库较大,通常我们可以通过数据采样来构建测试库。 数据采样除了需要对数据进行均匀的抽取之外,还可能有一种需求是对数据进行加密,例如需要隐藏或加密一些敏感字段的信息。 PostgreSQL 9.5开始支持tablesample的语法,参考如下 https://www.postgresql.or...
背景 PostgreSQL检查点是将shared buffer中的脏页打标记,并集中将其刷到磁盘的动作(fsync)。(期间可能有刷盘的调度,降低当脏页很多时带来的IO影响) 在检查点之外,平时bgwriter进程则会使用bufferio的方式(write)将脏页写到OS的dirty page。 如果shar...
背景 业界有一些通用的数据库性能测试模型,可以用来测试硬件在不同测试模型下的性能表现。 参考 http://www.tpc.org/ https://github.com/oltpbenchmark/oltpbench http://oltpbenchmark.com/ 本文主要以PostgreSQL为例,...
背景 业界有一些通用的数据库性能测试模型,可以用来测试硬件在不同测试模型下的性能表现。 参考 http://www.tpc.org/ https://github.com/oltpbenchmark/oltpbench http://oltpbenchmark.com/ 本文主要以PostgreSQL为例,...
背景 使用pgbench测试数据库性能时,在输出的报告中,可以输出事务的平均RT,以及单条SQL的平均RT。 那么这两个有什么分别呢? 每行代表一个线程,被填充了颜色的部分表示从客户端发起SQL到SQL返回的时间窗口,没有填充颜色的部分表示线程的空闲时间。 如何统计事务 平均RT : 执行的事务数/...
背景 Oracle的并行查询在处理JOIN时,可以通过调整优化器的HINT,指定优化器在处理JOIN时表的分布与关联策略。 例如,两张表JOIN时,如果是HASH或者MERGE JOIN,可以使用HASH分片,然后每个并行的计算单元处理一个数据分片,达到提高效率的目的。 又或者可以将某个较小的表进行broad...
背景 PostgreSQL的功能非常强大,但是要把PostgreSQL用好,开发人员是非常关键的。 下面将针对PostgreSQL数据库原理与特性,输出一份开发规范,希望可以减少大家在使用PostgreSQL数据库过程中遇到的困惑。 目标是将PostgreSQL的功能、性能发挥好,她好我也好。 Postgr...
背景 参考 https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions027.htm Oracle 中,可以将一个字符串从一个编码转换为另一个编码的输出。 convert(string, 目标字符集, 源字符集) 例如 ``` SEL...