哪些主要的数据库平台支持 TTL?

soa*_*gem 7 database-recommendation log

我需要将一些数据存储在将托管在 Amazon Web Services 上的数据库中,并且我可以完全自由地根据我认为最适合特定应用程序的数据库平台来选择要安装的数据库平台。

但是,需要注意的一件事是,AWS 的 RDS 服务基本上“内置”了以下四个数据库:

  • 甲骨文
  • MySQL
  • PostgreSQL
  • 数据库服务器

但除此之外,还可以启动 EC2 实例并安装其他任何东西;唯一的麻烦是我必须自己安装和维护数据库,而如果我采用上述选项之一,其中一些工作就会被淘汰。

我正在处理的特定应用程序将存储大量数据,出于所有意图和目的,这些数据看起来像日志/审计历史。而且有很多。每天,我们可能会在此表中插入一些 100K 行。通常,我们只会对当天插入的数据进行操作,尽管我们希望将数据保留至少一两周。

但是在那之后,我们需要基本上“过期”(也就是删除)旧数据,这样我们就不会用完磁盘空间。所以我正在寻找一个相对容易“过期”数据的平台。

我看到 MongoDB 通过使用expireAfterSeconds选项设置索引,在行级别内置了对此的支持。但是我不确定上面列出的任何 SQL 选项,或者其他任何选项。

上述 SQL 数据库中是否有任何机制可以自动修剪旧数据,或者将表视为“滚动日志”,并限制文件大小或行数?或者你有什么其他的推荐吗?

我知道我可以通过索引“创建日期”字段并在午夜运行 DELETE 查询来简单地在应用程序级别本身上编写它。但我担心事务日志会因为这种方式而呈指数级增长。

小智 5

如果您需要真正的 TTL 功能,据我所知,唯一真正的选择是使用对象数据库。

  • Mongo 在 TTL 方面做得很好;
  • Redis完全支持TTL;
  • LevelDB 有一个支持 TTL 的插件
  • MS Azure DocumentDB 还支持 TTL。