PostgreSQL最大化性能SSD

前端之家收集整理的这篇文章主要介绍了PostgreSQL最大化性能SSD前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我将拥有一个庞大的Postgresql 9.3数据库,其中包含许多表,每个表的条目超过100M.这个数据库基本上是只读的(一旦我填写了所有必要的表并在数据库上不再构建索引)和单用户访问(从localhost运行和基准测试多个查询),因为将使用该数据库仅用于研究目的.查询将始终在整数DB字段上使用JOIN.

我可能会为此目的购买一块SSD(256-512GB).我之前没有使用过SSD作为数据库,所以有什么我应该害怕的吗?我可以将整个数据库放在SSD上,还是只放入索引?调整Postgresql for SSD需要什么特别的建议/教程吗?请注意,我有一个带有i7和32Gb RAM的好工作站,所以也许你也可以提供一些建议.

so is there anything I should be afraid of?

没有备份.像任何存储设备一样,它可能会死亡.保持备份.

如果数据加载需要很长时间,我会在完成数据加载后备份只读数据库,通过停止并复制它.这样一来,如果出现问题,以后再重新创建会更容易.

Can I put the entire DB on the SSD,or just the indexes?

如果适合,请存储整个数据库.

如果没有,请在SSD上放置一个表空间,并使用它来存储索引以及尽可能多的经过严格查询的表.

Is there any particular advice / tutorial required for tuning Postgresql for SSDs?

SSD的大部分优点都适用于OLTP写入负载.只读加载的主要优点是快速搜索,而slardiere已经涵盖了这一点.

您可能希望设置effective_io_concurrency = 5或其他东西以反映SSD可以执行快速,高度流水线的随机读取这一事实……但它只影响位图索引扫描,实际上random_page_cost已经包含了这一点.

对于只读负载,它没有太大的区别.

有关初始数据加载,请参阅:

> https://stackoverflow.com/q/12206600/398670
> https://stackoverflow.com/q/758945/398670
> https://stackoverflow.com/q/9407442/398670

Note,that I have a good workstation with an i7 and 32Gb of RAM,so perhaps you can offer some advice there too.

为数据加载设置一个大的maintenance_work_mem.我使用至少8GB.

查询工作设置一个很大的work_mem.适当的大小取决于查询的复杂性.从500MB开始,从那里上升.

为初始数据加载提供checkpoint_segments(大量).

记得禁用VM overcommit! (参见Postgresql手册:http://www.postgresql.org/docs/current/static/kernel-resources.html)

猜你在找的Postgre SQL相关文章