溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MONGODB TTL怎么索引過期數據的killer

發(fā)布時間:2021-07-16 09:57:27 來源:億速云 閱讀:228 作者:chen 欄目:大數據

本篇內容主要講解“MONGODB  TTL怎么索引過期數據的killer”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MONGODB  TTL怎么索引過期數據的killer”吧!

過期數據的清理問題,一直是數據庫界的一個問題,處理的方式很多,大部分都是通過存儲過程,或者定期使用第三方工具來進行處理。MONGODB 處理過期數據的方面,可以使用類似REDIS expired key 的概念,創(chuàng)建TTL index 來通過時間的方式處理過期數據。

這樣處理的方式的好處

1 簡單方便

2 通過數據庫系統(tǒng)本身的方式來處理,高效安全

3 數據庫會根據自身的性能以及數據庫狀態(tài)來自動判斷是否開始清理數據,而不是和存儲過程,或其他的方式,到時間就去處理,不管數據庫當前的情況野蠻操作。

TTL 索引本身是一種特殊的單字段索引,通過普通創(chuàng)建索引的方式輔助expiredAfterSecond 選項就可以創(chuàng)建一個字段,字段的值需要為日期型,或者帶有日期類型的數組。

那我們先的理解什么是日期型數據,在MONGODB是怎么體現的

1 由于mongodb本身是分布式數據庫,在設計之初時間的概念是UTC的概念所以mongodb的時間類型的 isodate ,以世界的0時區(qū)作為統(tǒng)一的時間的表達,并沒有時區(qū)的概念,所以看到的時間應該在你自己的時區(qū)進行 增加或減少對應的時間。

2 MONGODB 中可以返回時間的函數(以目前最新的版本 4.2)有兩個 Date(), new Date() , 前一個返回的是字符類型的值,后一個返回的是UTC的時間。具體如何調整new Date() 返回的時間值,可以參看文檔。

下面是自動生成的測試數據

MONGODB  TTL怎么索引過期數據的killer

MONGODB  TTL怎么索引過期數據的killer

測試數據中只有creationDate是ISODATE類型,也只有這個字段可以作為判斷數據是否過期的唯一標準字段。添加索引需要在保存BSON日期類型的值或者對象數組的字段上創(chuàng)建TTL 索引,并且在expireAfterSeconds指定一個非負的非零值。當字段中的秒數超過其索引指定的時間后,文檔會過期,然后開始清理。

MONGODB  TTL怎么索引過期數據的killer

MONGODB  TTL怎么索引過期數據的killer

從測試來看,刪除文檔的速度比較快。

下面有幾點是TTL 索引需要知道的

1 TTL 索引不保證在生成索引后,立即開始刪除過期數據

2 不支持聯(lián)合索引

3 刪除文檔的調度任務60秒運行一次

4 負載過重的系統(tǒng),將跳過任務調度,以系統(tǒng)提供正常服務為優(yōu)先

5 復制集成員的非主成員,不會自動刪除數據,只接受主庫發(fā)來的delete指令

6  TTL 索引本身支持查詢使用,

7  在索引建立后,不能改變expireAfterSeconds 的值,需要刪除索引,在重新建立,所以添加數值的時候,一定算好。

8  建立TTL的字段,不能是其他已有索引的字段,否則無法添加expired功能

通過 db.serverStatus()  可以查看刪除文檔的數量

MONGODB  TTL怎么索引過期數據的killer

當然也可以通過日志來監(jiān)控刪除日志的操作,

MONGODB  TTL怎么索引過期數據的killer

默認監(jiān)控的方式是關閉的,需要使用下面的命令來打開

db.setLogLevel(1,"index")

或者不需要監(jiān)控,可以通過下面的命令來將監(jiān)控關掉

db.adminCommand({setParameter:1, ttlMonitorEnabled:false})

到此,相信大家對“MONGODB  TTL怎么索引過期數據的killer”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI