PostgreSQL性能优化综合案例讲解 - 1
背景 备注 部署部分可以请参考 《PostgreSQL on Linux 最佳部署手册》 【软件环境】 CentOS 5 x64 PostgreSQL 9.1.3 plproxy 2.3 pgbouncer 1.4.2 【测试模型】 设计一个包含INSERT, UPDATE, SELE...
背景 备注 部署部分可以请参考 《PostgreSQL on Linux 最佳部署手册》 【软件环境】 CentOS 5 x64 PostgreSQL 9.1.3 plproxy 2.3 pgbouncer 1.4.2 【测试模型】 设计一个包含INSERT, UPDATE, SELE...
背景 打个比方,有两个游戏区要合并。 单个游戏区的用户ID可以有多个角色,角色名不能重复。 当需要合并游戏区时,可能会涉及到同一个ID的不同区使用的相同的角色。 PostgreSQL没有merge的SQL语法(PostgreSQL 9.5有了) PostgreSQL 9.5 new feature - A...
背景 今天一位合作商的同事找到我, 问了一个关于数据库优化的问题. 问题是这样的 : 我现在在优化数据库操作, 我的一个role表结构里, 有几个比较大的text. 然后我现在只修改一个role里的int字段, 你上次说整条role记录就会拷贝一次是么, 这个拷贝是不是影响数据库的操作时...
背景 当你管理的服务器越来越多的时候, 哪个服务器才是你最需要关注的? 通过各个监控维度的排行, 可以知道你到底需要关注或者优先关注哪些服务器. 这个通过nagios,cacti等监控软件当然是可以做到的. 不过不太灵活, 因为服务器的配置各不一样, 关注的维度也不一样, PostgreSQL数据库的递归调...
背景 PostgreSQL 本身并不带针对某数据库或某用户的SQL审计功能。 通过pg_log_userqueries可以达到这样的目的。 首先到pgxn下载pg_log_userqueries模块 : 我测试的是0.4.0版本。 1. 安装 # unzip pg_log_userqueries-0.4...
背景 很久以前, PostgreSQL曾有内建函数来跟踪每条tuple的insert, delete时间。 现在使用timetravel也可以来模拟这个功能. 首先需要创建这个extension : digoal=> \c digoal pg92 You are now connected to ...
背景 上一篇BLOG讲的是使用timetravel跟踪TUPLE的DML操作,但是对于有PK的表没有办法实现跟踪,因为每次的UPDATE和DELETE都需要新建一条记录。 http://blog.163.com/digoal@126/blog/static/16387704020120133019990/ i...
背景 pgfincore 可以修改文件的posix_advise属性,输入参数是对象名。如表名,索引名。 注意有些PostgreSQL数据类型的存储如果选择了为extended或者EXTERNAL存储时。实际上这些内容是存储在TOAST表里面。 例如text 类型. 下面来看一个例子 : digoal=&...
背景 以前写过一些在PostgreSQL中创建file, CouchDB, Redis, PostgreSQL, Oracle等外部表的BLOG. 一直没有写MySQL的,刚好最近有一个项目要从MySQL迁移到PostgreSQL。今天补上如下 : 下载 http://pgxn.org/dist/mysql...
背景 今天在群里讨论的一个问题 : 开了pg_start_backup() , 但是忘记使用pg_stop_backup()来关闭备份, XLOG会怎么样? 答案是 xlog不会怎么样,不会一直保持不做rotate,也就是说PG_XLOG目录不会一直膨胀。 但是需要注意的是, 数据库不允许同时有多个客户端...