PostgreSQL 8.4 – 表空间优化

我目前正在运行大约15亿行/ 500 GB数据(包括指数)的PostgreSQL数据库。 对于(只读,不定期更改/更新)“核心模式”有几个模式:每个用户一个(约20人)。 用户可以访问核心并将数据存储在自己的模式中,因此一切都位于一个数据库中。

该服务器运行CentOS和PostgreSQL 8.4,用于科学研究,勘探等,运行良好。

现在,数据库存储硬盘的升级到来了 – 所有的性能都与旧的相同。

我正在寻找在这些磁盘上分发数据的最佳方式。 将经常使用的对象(核心数据)从用户模式中分离出来是可能的,但我不确定这是否值得。

将WAL文件(pg_xlog目录)移动到自己的分区似乎是一个更好的主意。

http://www.postgresql.org/docs/8.4/static/wal-internals.html

你有什么意见? 是否有任何表空间或分区相关的性能文档/基准?

如果你还没有这样做,移动WAL文件肯定更重要。 除非必须,否则不要开始移动单个表 – 特别是如果磁盘的速度差不多相等。

分离WAL无疑是成本效益比最好的方式。