mongodb的固定集合(最佳化效率)

來源:互聯網
上載者:User

標籤:

mongodb固定集合(Capped Collection)和大檔案管理(GridFS) Capped Collection 固定集合(Capped Collection)是效能出色的有著固定大小的集合,以LRU(Least Recently Used最近最少使用)規則和插入順序進行age-out(老化移出)處理,自動維護集合中對象的插入順序,在建立時要預先制定大小,如果空間用完,新添 加的對象將會取代集合中最舊的對象,永遠保持最新的資料。
查看集合的狀態資訊 db.cot1.stats(); //查看集合cot1的狀態資訊 刪掉指定集合 db.collection1.drop(); //刪除collection1集合 mongoDB中集合建立預設是隱式建立的,可以使用createCollection顯示建立集合 db.createCollection("collect"); 刪掉指定資料庫   db.dropDatabase(); //刪除當前資料庫 查詢所有資料庫 show dbs //查詢所有資料庫 顯示當前庫中所有集合 show tables; 或者 show collections; 固定集合的功能特點 可以插入及更新,但更新不能超出collection的大小,否則更新失敗,不允許刪除,但是可以調用drop()刪除集合中的所有行,但是drop後需要顯式地重建集合.在32位機子上一個cappped collection的最大值約為482.5M,64位上只受系統檔案大小的限制.
固定集合屬性及用法: 屬性1:對固定集合進行插入速度極快 屬性2:按照插入順序的查詢輸出速度極快 屬性3:能夠在插入最新資料時,淘汰最早的資料 用法1:儲存日誌資訊 用法2:緩衝一些少量的文檔 建立固定集合 不像普通集合,固定集合需要顯示的建立使用createCollection命令 eg. db.createCollection("collect",{capped:true, size:10000}); 建立一個集合為collect的固定集合,大小為10000位元組,還可以指定文檔個數,加上Max:100屬性. 注意:指定文檔上限,必須指定大小,文檔限制是在容量沒滿時進行淘汰,要是滿了,就根據容量限制來進行淘汰. 可以再建立capped collection時指定collection中能夠存放的最大文檔數目,但這是要指定size,因為總是先檢查size後檢查maxRowNumber.可以使用validate()查看一個collection已經使用了多少空間,從而決定size設為多大. > db.createCollection("mycappedcoll",{capped:true,size:10000,max:100}) { "ok" : 1 } > db.mycappedcoll.validate(); 建立collection時還有一個參數”autoIndexID”,值可以為”true”和”false”,決定是否需要在”_id”上建立索引,例如 > db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false}) 預設情況下對一般的collection是建立索引的,但不會對capped collection建立.capped collection不能被Shard,這也是有道理的,一個經常被重新整理且大小固定的表,做Sharding(分區)也沒太大意義.  www.2cto.com  轉換集合 把普通的集合轉換成固定集合需要使用convertTocapped命令 db.runCommand( { convertTocapped:"test",size:10000 } );把test普遍集合轉換為固定集合,大小為10000位元組. 自然排序 固定集合文檔按照插入順序儲存的,預設情況下查詢就是按照插入順序返回的,也可以使用$natural調整返回順序. db.mycappedcolt.find().sort( {"$natural":1} );參數1表示預設順序,-1則相反. 判斷集合是否為固定集合 db.colt.isCapped();  查看集合狀態資訊 db.colt.stats();  GridFS GridFS是一種在MongoDB中儲存大二進位檔案的機制,使用GridFS原因有以下幾種: 儲存巨大的檔案,比如視頻、高清圖片等.利用GridFS可以簡化需求. GridFS會直接利用已經建立的複製或分區機制,故障恢複和擴充都很容易. GridFS可以避免使用者上傳內容的檔案系統出現問題. GridFS不產生磁碟片段  www.2cto.com  GridFS儲存資料 GrdiFS使用兩個表來儲存資料: files 包含中繼資料對象 chunks 包含其他一些相關資訊的二進位塊. 為了使多個GridFS命名為一個單一的資料庫,檔案和塊都有一個首碼,預設情況下,首碼是fs,所以任何預設的GridFS儲存將包括命名空間fs.files和fs.chunks。 各種第三方語言可以更改其首碼 使用GridFS mongofiles mongofiles是從命令列操作GridFS的一種工具 四個命令:put(儲存)、get(取得/下載)、list(列表)、delete(刪除)  eg. ./mongofiles put testfile.zip ./mongofiles list ./mongofiles get testfile.zip ./mongofiles delete testfile.zip 驗證md5  mg5sum testfiles.zip 此時登入mongo,show tables可以看到新增2個檔案fs.files和fs.chunks. 查看fs.files中的內容  www.2cto.com   db.fs.files.find(); fs.files 中儲存的是一些基礎的中繼資料資訊. db.fs.chunks.find(); fs.chunks 中儲存的是一些實際的內容資料資訊.

mongodb的固定集合(最佳化效率)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.