新聞中心
在開(kāi)發(fā)應(yīng)用程序和處理數(shù)據(jù)方面,MongoDB大有用武之地。它作為無(wú)模式的文檔數(shù)據(jù)庫(kù),可以應(yīng)對(duì)許多不同類型和格式的數(shù)據(jù)。但隨著使用時(shí)間的增加,隨時(shí)準(zhǔn)備接收新數(shù)據(jù)的MongoDB數(shù)據(jù)庫(kù)也將不斷增長(zhǎng),并最終超出可用存儲(chǔ)空間。因此,輕松清空MongoDB數(shù)據(jù)庫(kù)變得至關(guān)重要,這就是MongoDB時(shí)間刪除的實(shí)質(zhì)。

本文將提供關(guān)于MongoDB時(shí)間刪除技術(shù)的概述,討論導(dǎo)致數(shù)據(jù)可以被刪除的條件,以及清空數(shù)據(jù)庫(kù)時(shí)需要考慮的更佳實(shí)踐。
MongoDB時(shí)間刪除解釋
MongoDB時(shí)間刪除是指利用MongoDB的自動(dòng)過(guò)期機(jī)制,將超過(guò)一定時(shí)間限制的數(shù)據(jù)從數(shù)據(jù)庫(kù)中刪除。在此之前,用戶必須定義一個(gè)過(guò)期時(shí)間限制。此機(jī)制基于一個(gè)稱為“TTL索引”的特殊索引,可以在指定時(shí)間內(nèi)自動(dòng)刪除與該索引關(guān)聯(lián)的文檔。
在MongoDB中,可以使用$addToSet和$pull操作符來(lái)建立和刪除文檔。而對(duì)于時(shí)間刪除這個(gè)特定的用例,$pull操作符被用于刪除文檔。$pull操作符需要引用MongoDB的系統(tǒng)變量,以確保要?jiǎng)h除的文檔只包含過(guò)期的數(shù)據(jù)。同時(shí),$pull操作符也需要TTL索引來(lái)指示MongoDB,何時(shí)將這些數(shù)據(jù)從數(shù)據(jù)庫(kù)中清除。
MongoDB時(shí)間刪除有兩個(gè)重要的組成部分: TTL索引和TTL掃描器。TTL索引指的是指定文檔的過(guò)期時(shí)間。而TTL掃描器則掃描數(shù)據(jù)庫(kù),以查找并刪除到期的文檔。TTL掃描器以每分鐘100次的速率運(yùn)行,這意味著MongoDB需要在超出過(guò)期時(shí)間后一分鐘內(nèi)找到要?jiǎng)h除的數(shù)據(jù)。
導(dǎo)致MongoDB數(shù)據(jù)刪除的條件
在MongoDB時(shí)間刪除技術(shù)中,用戶可以設(shè)置到期的時(shí)間限制。當(dāng)數(shù)據(jù)的時(shí)間戳相對(duì)于過(guò)期時(shí)間限制時(shí),它可以被自動(dòng)刪除。
值得注意的是,MongoDB時(shí)間刪除并不是一個(gè)實(shí)時(shí)刪除過(guò)程。雖然,TTL索引和TTL掃描器在任一時(shí)刻都在運(yùn)行,但必須等到掃描器運(yùn)行才能真正清除數(shù)據(jù)。這意味著存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)可能會(huì)超過(guò)指定的到期時(shí)間限制,這也就是為什么針對(duì)敏感數(shù)據(jù)保持更新的需求如此重要。
而要在MongoDB數(shù)據(jù)庫(kù)中實(shí)現(xiàn)時(shí)間刪除,需要遵循一系列的條件:
1.創(chuàng)建BSON對(duì)象的字段名稱:此用例中包含兩個(gè)鍵 – 一個(gè)$set操作符鍵和一個(gè)$key操作符鍵。
2.$set操作符: $set操作符設(shè)置時(shí)間戳為1970年1月1日以來(lái)的秒數(shù)。
3.$key操作符: $key操作符指定時(shí)間生存MS中文檔的持續(xù)時(shí)間。
4.TTL索引: TTL索引將已過(guò)期的文檔與現(xiàn)有數(shù)據(jù)分開(kāi),并使MongoDB可以以最有效的方式刪除它們。
更佳做法
為了在MongoDB數(shù)據(jù)庫(kù)中使用時(shí)間刪除功能,需要遵循一些更佳實(shí)踐。 下面是一些可能有用的提示:
確定“過(guò)期”更佳實(shí)踐:您需要確保定義的“過(guò)期”時(shí)間限制符合您的實(shí)際需求??梢酝ㄟ^(guò)實(shí)驗(yàn)來(lái)確定更佳時(shí)間限制。
監(jiān)測(cè)TTL索引性能:雖然TTL索引是MongoDB時(shí)間刪除成功的關(guān)鍵,但它也可能對(duì)數(shù)據(jù)庫(kù)的性能產(chǎn)生負(fù)面影響。 我們建議定期監(jiān)測(cè)索引的性能。
減少要?jiǎng)h除數(shù)據(jù)的占用空間: 通過(guò)選擇合適的架構(gòu)來(lái)減小要?jiǎng)h除數(shù)據(jù)的物理和占用空間。 小型和/或高速閃存媒體可以加快數(shù)據(jù)庫(kù)運(yùn)行速度并優(yōu)化元數(shù)據(jù)。
混合TTL和Sharding: Sharding技術(shù)可將數(shù)據(jù)分散到多個(gè)服務(wù)器上,以便于操作。 但是,無(wú)法在這些服務(wù)器之間定義相同的TTL。 這就需要胡混合使用TTL和分片技術(shù)。
結(jié)論
MongoDB時(shí)間刪除是一種靈活的工具,可以幫助減少數(shù)據(jù)庫(kù)的存儲(chǔ)容量并優(yōu)化數(shù)據(jù)庫(kù)性能。 雖然這種方法在數(shù)據(jù)到期后需要一段時(shí)間才能真正刪除數(shù)據(jù),但是一旦成功配置,它將使您的數(shù)據(jù)庫(kù)變得更健康和更容易管理。
要獲得更佳結(jié)果,必須遵循更佳實(shí)踐。 您需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,并對(duì)其工作過(guò)程進(jìn)行監(jiān)控。 您需要確保TTL索引正確配置,并定期刪除實(shí)際已到期的數(shù)據(jù)。 最終,您將發(fā)現(xiàn)自己擁有了一個(gè)穩(wěn)健且可擴(kuò)展的數(shù)據(jù)庫(kù)。
相關(guān)問(wèn)題拓展閱讀:
- mongodb刪除數(shù)據(jù)庫(kù)會(huì)刪除索引嗎
mongodb刪除數(shù)據(jù)庫(kù)會(huì)刪除索引嗎
MongoDB 增加用戶 刪除用戶 修改用戶 讀寫權(quán)限 只讀權(quán)限,
MongoDB用戶權(quán)限分配的操作是針對(duì)某個(gè)庫(kù)來(lái)說(shuō)的。–這句話此察很重要。
1、 進(jìn)入ljc 數(shù)據(jù)庫(kù):
use ljc; –
www.2cto.com-
ljc為數(shù)據(jù)庫(kù)名稱。
2、添加用戶(讀寫權(quán)限,readOnly–>false):
db.addUser(“java”,”java”);
3、 查看一下所有的用戶
db.system.users.find();
{ “_id” : ObjectId(“4e02a89fb841deb5fda3e5e2”), “user” : “java”, “readOnly” : fa
lse, “pwd” : “59cf7cc156874cbd35cbf569” }
4、用戶授權(quán)。
db.auth(“java”,”java”);
顯示為1 表示授權(quán)成功,0表示不成功。
5、 添加用戶(只讀權(quán)限,readOnly–>true):
db.addUser(“java1″,”森游茄java1”,true);
db.system.users.find();
{ “_id” : ObjectId(“4e02a89fb841deb5fda3e5e2”), “user” : “java”, “readOnly” : fa
lse, “pwd” : “59cf7cc156874cbd35cbf569” }
{ “_id” : ObjectId(“4e02aae6b841deb5fda3e5e3”), “user” : “java1”, “readOnly” : t
rue, “pwd” : “fca6bda05c87a72cce0a4a6458d1e266” }
注意上面標(biāo)紅的位置的readOnly 只讀于可寫是有區(qū)別的。
6、更改密碼(為已經(jīng)存在的用戶更改密碼):
db.addUser(“java”,”java1″);
7、刪除用戶:
db.system.users.remove({user:”java1″});
關(guān)于庫(kù)權(quán)限,如果用戶需要全局的權(quán)限,可以在admin和local的兩個(gè)庫(kù)里添加,但是需要重啟庫(kù),
有待驗(yàn)證。
==========================================================================
MongoDB增加用戶認(rèn)證: 增加用戶、刪除用戶、修改用戶密碼、讀寫權(quán)限、只讀權(quán)限
說(shuō)明:增加用戶是針對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
1.進(jìn)入到數(shù)據(jù)庫(kù) use dbname
2.針對(duì)當(dāng)前數(shù)據(jù)庫(kù)添加用戶 權(quán)限是針對(duì)當(dāng)前數(shù)據(jù)
1.添加并驗(yàn)證用戶
> use admin
> db.addUser(“zjx”,”tsjianxin”)
> db.auth(“zjx”,”tsjianxin”)
2.查看已存在的用戶
> db.system.users.find()
3.現(xiàn)在來(lái)給另一個(gè)數(shù)據(jù)庫(kù)51cv配置一個(gè)讀寫權(quán)限的-
www.2cto.com-
用戶
> use 51cv
> db.addUser(“51cvrw”,”51cv”)
…”readOnly” : false…
4.配置一個(gè)只讀權(quán)限的用戶
> use 51cv
> db.addUser(“51cvr”,”51cv”,true)
> db.system.users.find()
…”readOnly” : true…
5.刪除磨輪用戶
> use dbname (admin or 51cv ,etc)
> db.system.users.remove({user:”haha”})
> db.system.users.find()
6.用戶登錄數(shù)據(jù)庫(kù)測(cè)試
for:mongod dbname -u uname -p password
mongo admin -u zjx -p tsjianxin
刪除數(shù)據(jù)庫(kù)會(huì)刪掉整個(gè)庫(kù)下的所有對(duì)象,索引當(dāng)然也會(huì)刪除了
mongo 按時(shí)間刪除數(shù)據(jù)庫(kù)的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于mongo 按時(shí)間刪除數(shù)據(jù)庫(kù),MongoDB時(shí)間刪除:輕松清空數(shù)據(jù)庫(kù),mongodb刪除數(shù)據(jù)庫(kù)會(huì)刪除索引嗎的信息別忘了在本站進(jìn)行查找喔。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
當(dāng)前文章:MongoDB時(shí)間刪除:輕松清空數(shù)據(jù)庫(kù)(mongo按時(shí)間刪除數(shù)據(jù)庫(kù))
分享鏈接:http://m.fisionsoft.com.cn/article/dphpccj.html


咨詢
建站咨詢
