Recent Posts

如何追溯 PostgreSQL 慢查询当时的状态

less than 1 minute read

背景 数据库出现慢查询的原因很多,例如IO等待,CPU繁忙,执行计划异常,锁等待,等等。 那么在发生慢查询后,如何能追溯慢查询当时的状态呢? 下面给大家提供一种思路, 1. 首先,我们是如何监测慢查询的 2. 监测到慢查询后,需要采集哪些信息 3. 数据库内核层面能做什么 4. 如何分析 如何实现?...

PostgreSQL 行级 全文检索

2 minute read

背景 在一些应用程序中,可能需要对表的所有字段进行检索,有些字段可能需要精准查询,有些字段可能需要模糊查询或全文检索。 比如一些前端页面下拉框的勾选和选择。 这种需求对于应用开发人员来说,会很蛋疼,因为写SQL很麻烦,例子: postgres=# create table t(phonenum text, ...

PostgreSQL 物联网黑科技 - 瘦身几百倍的索引(BRIN index)

4 minute read

背景 在数据库中用得最多的当属btree索引,除了BTREE,一般的数据库可能还支持hash, bitmap索引。 但是这些索引到了物联网,会显得太重,对性能的损耗太大。 为什么呢? 物联网有大量的数据产生和入库,入库基本都是流式的。在使用这些数据时,基本是FIFO,或者范围查询的批量数据使用风格。 bt...

PostgreSQL 流复制延迟的测试方法

2 minute read

背景 测试环境 X86 CentOS 6.x x64 32 Core 10000 MB/s 256 GB 12 SSD PostgreSQL 9.5.1 一主一备 PostgreSQL配置 postgresql.conf listen_addresses = '0.0.0.0...

Greenplum segment节点直接读写配置与性能

10 minute read

背景 《Use pgbouncer connect to GreenPlum’s segment node》 架构: 前端使用haproxy代理到后端的pgbouncer端口。 连接池使用pgbouncer,每个segment一个pgbouncer。 数据库为segment。 适合场景,随机分发表。 ...

fio测试IO性能

3 minute read

背景 FIO flexible testing of the Linux IO subsystem and schedulers 安装fio git clone https://github.com/axboe/fio cd fio ./configure --prefix=/home/dig...

如何评估Greenplum master 空间以及segment元数据占用的空间

1 minute read

背景 Greenplum master节点是用来存储元数据的,包括 : 序列,表,临时表,分区,函数,视图,类型,操作符,规则,触发器 等。 segment 上也会存储部分元数据, 序列,表,临时表,函数,视图,类型,操作符,规则,触发器 等。 master比segment更多的信息包括: 分布策略,分...

PostgreSQL 递归查询一例 - 资金累加链

less than 1 minute read

背景 云栖社区问答中,一位网友的问题: one等于上一个one加上现在的money,如何填充one字段?语句怎么写? 解法 在PostgreSQL中,可以使用递归查询满足以上业务场景的需求: 需要用到递归查询。 postgres=# create table m(id serial primary k...