歡迎大家光顧我的淘寶店:點擊進入
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