我需要在 postgresql 数据库中创建一个用于缓存的表。事务应该尽可能快,所以我想到创建未记录的表并使用 RAM 磁盘作为表空间。
postgresql 官方文档中有一条警告:
将表空间放置在 RAM 磁盘等临时文件系统上会危及整个集群的可靠性。
我知道未记录的表不会复制到备用数据库,并且我可以在该表中存储非持久数据。所以万一发生崩溃我也可以失去它。这里有一个问题:
- 在此配置中将表空间放置在 RAM 磁盘上到底安全吗?(未记录 + RAM 磁盘表空间 + 非持久数据)
- 如果这是一个安全的选择,我是否也应该在副本上创建 ram 磁盘,因为表空间的创建将存储在 wal 中的某个位置?
我正在使用带有流复制的 EDB 13.9.13。如果这可行的话我会对 Postgresql v14.7 做同样的事情
不,那不行。计算机重新启动后,当您尝试访问该表时,您将遇到严重的错误。如果遇到严重错误,您可能可以删除并重新创建该表,但是如何可靠地将这些严重错误与其他确实存在问题的严重错误区分开来?
我认为这是一种过度热心的尝试来优化不需要它的东西。只要给你的机器足够的 RAM,那么如果使用得足够频繁,未记录的表无论如何都会被缓存在 RAM 中。