RAM中运行的数据库速度有多快?

oro*_*aki 7 database optimization

我希望在RAM中运行PostgreSQL以提高性能.数据库不超过1GB,不应该增长到超过5GB.是否值得做?有没有基准测试?是否有错误?

我的第二个主要问题是:当它纯粹在RAM中运行时,备份是多么容易.这就像使用RAM作为第1层高清,还是更复杂?

int*_*tgr 5

如果您的数据库受I / O约束,则可能值得。如果受CPU限制,则RAM驱动器不会有任何影响。

但是首先,您应该确保正确调整数据库,这样才能在不损失任何保证的情况下获得巨大的性能提升。如果未正确调整,即使是基于RAM的数据库也将表现不佳。参见PostgreSQL Wiki,主要是shared_buffers,effective_cache_size,checkpoint _ *,default_statistics_target

其次,如果要避免在每次提交时都同步磁盘缓冲区(例如在其注释中解释的codeka),请禁用sync_commit配置选项。当您的计算机断电时,这将丢失一些最新的事务,但是您的数据库仍将保持100%一致。在这种模式下,RAM将用于缓冲所有写入,包括对事务日志的写入。因此,使用非常罕见的检查点,大的shared_buffers和wal_buffers,它实际上可以达到接近RAM驱动器的速度。

硬件也可以发挥巨大作用。实际上,对于数据库工作负载,15000 RPM磁盘的速度是廉价驱动器的3倍。具有电池后备缓存的RAID控制器也有很大的不同。

如果这还不够,那么考虑转向易失性存储可能是有意义的。