我目前正在运行一个 PostgreSQL 数据库,其中包含大约 15 亿行/500 GB 的数据(包括索引)。有几种模式:一个用于(只读、不定期更改/更新)“核心模型”,每个用户(大约 20 人)各一个。用户可以访问核心并将数据存储在自己的模式中,因此所有内容都位于一个数据库中。
该服务器运行CentOS和PostgreSQL 8.4,用于科学研究,探索等,运行良好。
如今,DB 存储硬盘的升级版已经面世 - 其性能与旧版相同。
我正在寻找在这些磁盘上分配数据的最佳方法。可以将常用对象(核心数据)与用户模式分开,但我不确定这是否真的值得付出努力。
将 WAL 文件(pg_xlog 目录)移动到其自己的分区似乎是一个更好的主意。
http://www.postgresql.org/docs/8.4/static/wal-internals.html
您的看法是什么?是否有任何与表空间或分区相关的性能文档/基准?
答案1
如果您还没有移动 WAL 文件,那么现在移动 WAL 文件绝对更重要。除非迫不得已,否则不要开始移动单个表 - 尤其是当磁盘速度大致相同时。
答案2
从成本效益比来看,分离WAL绝对是最好的方法。