我已经将 Amazon Redshift 作为缓存进行了测试。所以我一键保存数据。但是随着时间的推移,缓存变得越来越慢。一旦我对数据库执行 VACCUM,它就会恢复到原来的速度。但是我应该在数据库中连续运行 VACCUM 吗?。或者有没有更好的方法使用红移表进行连续读取、写入和删除。
我已经将 Amazon Redshift 作为缓存进行了测试。所以我一键保存数据。但是随着时间的推移,缓存变得越来越慢。一旦我对数据库执行 VACCUM,它就会恢复到原来的速度。但是我应该在数据库中连续运行 VACCUM 吗?。或者有没有更好的方法使用红移表进行连续读取、写入和删除。
我不建议使用 redshift 作为缓存。你考虑过 Redis 吗?
Redshift 将所有数据以 1MB 块的形式保存到磁盘,按照您的 sortkey 建立的顺序,并根据您的 distkey 在节点之间分布。当您创建、更新、删除时,您是在将数据附加到数据库的最后一个块。这些包含所有新更改的块在您清空数据库之前不会排序。
因此,当您将 redshift 用作缓存时,您会很快将数据碎片化,从而使查询变慢。
使用 redshift 作为缓存当然是一个大问题。
除非,缓存是指存储预先计算的聚合。