我可能会为此目的购买一块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)