MongoDB中的Capped Collection和GridFS

歡迎大家光顧我的淘寶店:點擊進入

1 顯示創建集合

     db.createCollection("c1");

     db.c1.drop();

     db.c1.stats();  查看集合的狀態

     db.system.indexes.find();   查看數據庫中所有索引

2 Capped Collection 固定集合

     屬性1  對固定集合進行插入速度極快

     屬性2  按照插入順序的查詢輸出速度極快

     屬性3  能夠在插入最新數據時,淘汰最早的數據。

 

     用法1  儲存日誌信息。

     用法2  緩存一些少量的文檔。

3 固定集合的使用

     創建固定集合   db.createCollection("c2",{capped:true,size:10000,max:5});

     普通集合轉固定集合  db.ranCommand(convertToCapped:"c1",size:100000,max:3);

4 GridFS使用兩個表來存儲數據:

      files  包含元數據對象

      chunks 包含其他一些相關信息的二進制塊

三個命令:put(存儲), get(取得),list(列表)

       具體應用:mongofiles put testfile ---上傳文件

                         mongofiles list----查看庫裏有那些GridFS文件

       進入庫裏看一下是否有新的東西:

                    >     show   collections

                        fs.chunks            

                        fs.files

        繼續查看fs.files中的內容

                       db.fs.files.find()

                       各個參數:Filename:存儲的文件名

                                         chunkSize:chunks分塊的大小

                                         uploadDate:入庫時間

                                          md5            :此文件的md5碼

                                          length            文件大小,單位是字節

                      fs.files中存儲的是一些基礎的元素信息

                      

                       >db.fs.chunks.find()

                        _id:塊自身的id

                       file_id:包含這個塊的元數據庫文檔文件id

                       n:代表的是chunks的序號,此序號從0開始

                       data:組成文件塊的二進制文件

 

                       fs.chunks中存儲的是一些師姐的內容數據信息

 

5 查看文件的md5值

                    md5sum mongosniff.tar.gz

 

6 索引的建立

                     

 例子:在name上建立索引 1(升序),-1(降序)

>db.persons.ensureIndex({name:1});

當系統已有大量數據時,創建索引非常耗時,需要在後臺執行,只需要指定 “background:true” 

>db.ts.ensureIndex({age:1},{background:true})

 

db.c1.getIndexKeys();//索引清單

db.c1.getIndexes();

 

7唯一索引

 只需要ensureIndex命令中指定"unique:true"即可創建唯一索引。

比如:

       >db.c1.ensureIndex({firstname:1,lastname:1},{unique:true});

注意:如果表中有兩條一樣的數據,就建立不了唯一索引。

刪除索引:db.c1.dropIndex({age:1})

刪除集合中所有的索引:db.c1.dropIndexes();但是不刪除_id上的索引。

 

8 explain執行計劃

explain命令讓我們獲知系統如何處理查詢請求。

利用explain命令,我們可以很好的觀察系統如何使用索引來加快檢索,同時可以針對性能化索引。

 

9優化器 profile

MongoDB Databse Profiler是一種慢查詢日誌功能,可以作爲我們優化數據庫的依據。

查詢是否已經開啓:db.getProfilingLevel();

0表示沒有開啓,1表示開啓

用命令:db.setProfilingLevel(1);開啓慢查詢日誌

 

優化方案

 優化方案1 :創建索引

 

 優化方案2:限定返回結果條數

 

優化方案3:查詢使用到的字段,不查詢所有字段。

 

優化方案4:採用apped collection

 

優化方案5 採用Profiling慢查詢日誌

 

性能監控:

Mongosniff --source net lo

 

 

     

      

 

發佈了50 篇原創文章 · 獲贊 5 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章