創(chuàng)建固定集合
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、廣豐網(wǎng)站維護、網(wǎng)站推廣。
db.createCollection(“my_collection”,{capped:true,size:10000,max:5})
把普通集合轉(zhuǎn)行成固定集合
db.runCommand({convertTocapped:”test”,size:10000})
GridFS是一種在MongoDB中存儲大二進制文件的機制,使用GridFS可以存儲以下幾種文件:
儲存巨大的文件,比如視頻、高清圖片等
好處:
利用GridFS可以簡化需求。
GridFS會直接利用已經(jīng)建立的復(fù)制或分片機制,故障恢復(fù)和擴展都很容易
GridFS可以避免用戶上傳內(nèi)容的文件系統(tǒng)出現(xiàn)問題。
GridFS不產(chǎn)生磁盤碎片
GridFS使用兩個表來存儲數(shù)據(jù):
files 包含元數(shù)據(jù)對象
chunks 包含其他一些相關(guān)信息的二進制塊
[root@a2 bin]# ./mongofiles put mongosniff.tar.gz
[root@a2 bin]# ./mongo
MongoDB shell version: 2.4.3
connecting to: test
> show tables;
fs.chunks
fs.files
system.indexes
> db.fs.files.find();
{ "_id" : ObjectId("5196601b171c296452c1f9f1"), "filename" : "mongosniff.tar.gz", "chunkSize" : 262144, "uploadDate" : ISODate("2013-05-17T16:51:40.843Z"), "md5" : "5067d9e1c4a0e41b93f204a72ec52794", "length" : 7171743 }
>
fs.files 存儲的是文件的相關(guān)信息,fs.chunks存儲是的文件,并且是二進制格式的。
查看存儲文件信息
[root@a2 bin]# ./mongofiles list
connected to: 127.0.0.1
mongosniff.tar.gz 7171743
獲取存儲文件:
[root@a2 bin]# ./mongofiles get mongosniff.tar.gz
系統(tǒng)性能優(yōu)化:
建立索引,
當(dāng)創(chuàng)建collection時,系統(tǒng)會自動建立一個_id的索引,而且不能刪除
> db.system.indexes.find();
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.c1", "name" : "_id_" }
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.c2", "name" : "_id_" }
建立普通索引
> db.c2.ensureIndex({age:1},{true});(如果數(shù)據(jù)量大,可以使用background,age:1表示索引按age的升序排列,-1為降序)< /p>
> db.system.indexes.find();
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.c1", "name" : "_id_" }
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "test.c2", "name" : "_id_" }
{ "v" : 1, "key" : { "age" : 1 }, "ns" : "test.c2", "name" : "age_1", "background" : true }
建立唯一索引
> db.c2.ensureIndex({name:1},{unique:true})
如果再輸入的數(shù)據(jù)name字段有重復(fù)的話,就會報錯,如下:
> db.c2.insert({name:"user0"})
E11000 duplicate key error index: test.c2.$name_1 dup key: { : "user0" }
刪除所有索引
> db.c2.dropIndex();
刪除name字段的索引
> db.c2.dropIndex({name:1})
MongoDB 提供了一個explain命令讓我們獲知系統(tǒng)如何處理查詢請求
> db.c2.find({age:{$gt:26}}).explain();
{
"cursor" : "BtreeCursor age_1",
"isMultiKey" : false,
"n" : 3, 返回的數(shù)據(jù)數(shù)
"nscannedObjects" : 3,
"nscanned" : 3, 被掃描的文檔數(shù),因為做了age字段的索引
"nscannedObjectsAllPlans" : 3,
"nscannedAllPlans" : 3,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 1, 耗時(毫秒)
"indexBounds" : { 所使用的索引
"age" : [
[
26,
1.7976931348623157e+308
]
]
},
"server" : "a1:27017"
}
MongoDB Database Profiler 是一種慢查詢?nèi)罩竟δ?,可以作為我們?yōu)化數(shù)據(jù)庫的依據(jù)。
開啟profile功能:
(1)> db.setProfilingLevel(2);
{ "was" : 0, "slowms" : 100, "ok" : 1 }
(2)[root@a1 bin]# ./mongod --dbpath=/usr/local/mongodb/data/ --logpath=/usr/local/mongodb/dblogs -profile=2 --fork
添加 -profile參數(shù)
優(yōu)化方案:
1:創(chuàng)建索引 db.posts.ensureIndex({ts:1});
2: 限定返回結(jié)果條數(shù) db.posts.find().sort({ts:-1}).limit(10);
3: 查詢使用到的字段,不查詢所有字段
4: 采用cappedcollection
capped Collections比普通Collections的讀寫效率高
5: 采用Profiling
Mongosniff此工具可從底層監(jiān)控到底有哪些命令發(fā)送給MongoDB去執(zhí)行。
執(zhí)行這個命令可能會出現(xiàn)如下錯誤
[root@a1 bin]# ./mongosniff --help
./mongosniff: error while loading shared libraries: libpcap.so.0.9: cannot open shared object file: No such file or directory
解決方法:
yum -y install libpcap-devel
由于系統(tǒng)自動安裝的是 1.0版本,所以我們還必須建立個軟連接
ln -s /usr/lib64/libpcap.so.1.0.0 /usr/lib64/libpcap.so.0.9
使用方法:
[root@a1 bin]# ./mongosniff --source NET lo
sniffing... 27017
可以將這些數(shù)據(jù)輸出到一個日志文件中,那么就可以保留下所有數(shù)據(jù)庫操作的歷史記錄,對于后期的性能分析和安全審計等工作將是一個巨大的貢獻。
Mongostat
此工具可以快速的查看某組運行中的MongoDB 實例的統(tǒng)
計信息,也需要在打開一個客戶端進行命令操作:
用法如下:
[root@localhost bin]# ./mongostat
查看數(shù)據(jù)庫的狀態(tài):
> db.stats();
{
"db" : "test",
"collections" : 6,
"objects" : 234,
"avgObjSize" : 263.77777777777777,
"dataSize" : 61724,
"storageSize" : 1077248,
"numExtents" : 6,
"indexes" : 4,
"indexSize" : 32704,
"fileSize" : 67108864,
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
分享名稱:mongodb系統(tǒng)性能篇(1)
網(wǎng)站地址:http://chinadenli.net/article32/ihgppc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、網(wǎng)站維護、服務(wù)器托管、外貿(mào)建站、網(wǎng)站排名、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)