Database-Recommendation

哪些主要的數據庫平台支持TTL?

  • October 22, 2021

我需要將一些數據儲存在將託管在 Amazon Web Services 上的數據庫中,並且我完全可以根據我認為最適合特定應用程序的方式選擇要安裝的數據庫平台。

然而,需要注意的一點是,AWS 在其 RDS 服務中基本上“內置”了以下四個數據庫:

  • 甲骨文
  • MySQL
  • PostgreSQL
  • SQL 伺服器

但除此之外,還可以啟動 EC2 實例並安裝其他任何東西;唯一的麻煩是我必須自己安裝和維護數據庫,而如果我使用上述選項之一,其中一些工作就會被外包出去。

我正在開發的特定應用程序將儲存大量數據,出於所有意圖和目的,這些數據看起來像日誌/審計歷史記錄。而且還有很多。每天,我們可能會在此表中插入幾 100K 行。一般來說,我們只會對當天插入的數據進行操作,儘管我們希望將數據保留至少一兩個星期。

但是在那之後,我們需要基本上“過期”(也就是刪除)舊數據,這樣我們就不會耗盡磁碟空間。所以我正在尋找一個相對容易“過期”數據的平台。

我看到 MongoDB 通過使用expireAfterSeconds選項設置索引在行級別上對此提供了內置支持。但我不確定上面列出的任何 SQL 選項,或者其他任何選項。

上述任何 SQL 數據庫是否有任何機制可以自動修剪舊數據,或將表視為具有文件大小或行數上限的“滾動日誌”?或者你有什麼其他的建議嗎?

我知道我可以簡單地在應用程序級別上編寫它,方法是使用索引的“創建日期”欄位並在午夜執行 DELETE 查詢。但我擔心事務日誌會因為以這種方式做事而呈指數級增長。

如果您需要真正的 TTL 功能,我所知道的唯一真正的選擇是使用對像數據庫。

  • Mongo 的 TTL 做得很好;
  • Redis 完全支持 TTL;
  • LevelDB 有一個支持 TTL 的外掛
  • MS Azure DocumentDB 也支持 TTL。

DynamoDB 支持開箱即用的 TTL。與 TTL 匹配的項目會自動刪除,不會消耗容量。

引用自:https://dba.stackexchange.com/questions/100807