Recent Posts

PostgreSQL 优化CASE - 无序UUID性能问题诊断

16 minute read

背景 某数据库的IO等待非常高, 基本上iostat 看到的磁盘使用率都是接近100%的. 分析这个业务库有如下特征 : 1. 最大的单表20GB左右, 1.2亿数据, 有插入操作, 无更改无删除, 有少量查询. 2. 这些表的索引较少, 只有PK和时间字段上的索引, 注意这里的PK是text类型, 并且使...

PostgreSQL XLOG fsync simple introduce

15 minute read

背景 一、where is the tuples? datafile, blocks. 从上到下的顺序查找. 1. PostgreSQL shared buffer 2. OS FileSystem cache 3. storage cache(raid card or controller’s cach...

How many xlogs WAL can be generated by PostgreSQL?

12 minute read

背景 PostgreSQL和Oracle类似, 都记录了redo日志, PostgreSQL里面叫做xlog或者WAL. XLOG可以用来做基于物理文件备份的还原操作. 这一点和Oracle使用RMAN进行还原时需要用到的archive log非常类似. 这里就不阐述PostgreSQL如何做物理备份和还原了...

PostgreSQL general public partition table trigger

3 minute read

背景 触发器在数据库中的使用非常广泛, 例如用来跟踪用户行为, 用户登录过滤(Oracle中), 数据复制, 数据分区等等. 以前写过一些类似的应用场景案例分享, 感兴趣的朋友可以参考本文的末尾部分, 有相关的链接. 特别是在数据分区应用场景中, PostgreSQL目前没有将分区这部分代码作为COMMAND...

表级复制(base on trigger) – multi master replication & performance tuning

16 minute read

背景 本文在9.2下面测试, 较老版本可能系统表的字段名不一样, 需要修改触发器函数相关部分, 如pg_stat_activity的pid, 老版本是procpid. 数据同步是一个比较老的话题了, 在PostgreSQL中有比较多的同步手段, 例如流复制, slony, londiste, pgpool等. ...

表级复制(base on trigger) – one(rw) to many(ro rw)

9 minute read

背景 本文在9.2下面测试, 较老版本可能系统表的字段名不一样, 需要修改触发器函数相关部分, 如pg_stat_activity的pid, 老版本是procpid. 数据同步是一个比较老的话题了, 在PostgreSQL中有比较多的同步手段, 例如流复制, slony, londiste, pgpool等. ...