真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mongodb系統(tǒng)性能篇(1)

創(chuàng)建固定集合

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)絡(luò)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、廣豐網(wǎng)站維護(hù)、網(wǎng)站推廣。

db.createCollection(“my_collection”,{capped:true,size:10000,max:5})

把普通集合轉(zhuǎn)行成固定集合

db.runCommand({convertTocapped:”test”,size:10000})

GridFS是一種在MongoDB中存儲(chǔ)大二進(jìn)制文件的機(jī)制,使用GridFS可以存儲(chǔ)以下幾種文件:

儲(chǔ)存巨大的文件,比如視頻、高清圖片等

好處:

利用GridFS可以簡(jiǎn)化需求。

GridFS會(huì)直接利用已經(jīng)建立的復(fù)制或分片機(jī)制,故障恢復(fù)和擴(kuò)展都很容易

GridFS可以避免用戶上傳內(nèi)容的文件系統(tǒng)出現(xiàn)問(wèn)題。

GridFS不產(chǎn)生磁盤(pán)碎片

GridFS使用兩個(gè)表來(lái)存儲(chǔ)數(shù)據(jù):

files 包含元數(shù)據(jù)對(duì)象

chunks 包含其他一些相關(guān)信息的二進(jì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 存儲(chǔ)的是文件的相關(guān)信息,fs.chunks存儲(chǔ)是的文件,并且是二進(jìn)制格式的。

查看存儲(chǔ)文件信息

[root@a2 bin]# ./mongofiles  list

connected to: 127.0.0.1

mongosniff.tar.gz       7171743

獲取存儲(chǔ)文件:

[root@a2 bin]# ./mongofiles  get  mongosniff.tar.gz

系統(tǒng)性能優(yōu)化:

建立索引,

當(dāng)創(chuàng)建collection時(shí),系統(tǒng)會(huì)自動(dòng)建立一個(gè)_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ù)的話,就會(huì)報(bào)錯(cuò),如下:

> 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 提供了一個(gè)explain命令讓我們獲知系統(tǒng)如何處理查詢請(qǐng)求

> db.c2.find({age:{$gt:26}}).explain();

{

       "cursor" : "BtreeCursor age_1",

       "isMultiKey" : false,

       "n" : 3,                              返回的數(shù)據(jù)數(shù)

       "nscannedObjects" : 3,

       "nscanned" : 3,                        被掃描的文檔數(shù),因?yàn)樽隽薬ge字段的索引

       "nscannedObjectsAllPlans" : 3,

       "nscannedAllPlans" : 3,

       "scanAndOrder" : false,

       "indexOnly" : false,

       "nYields" : 0,

       "nChunkSkips" : 0,

       "millis" : 1,                     耗時(shí)(毫秒)

       "indexBounds" : {                 所使用的索引

               "age" : [

                       [

                               26,

                               1.7976931348623157e+308

                       ]

               ]

       },

       "server" : "a1:27017"

}

MongoDB Database Profiler 是一種慢查詢?nèi)罩竟δ埽梢宰鳛槲覀儍?yōu)化數(shù)據(jù)庫(kù)的依據(jù)。

開(kāi)啟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的讀寫(xiě)效率高

5: 采用Profiling

Mongosniff此工具可從底層監(jiān)控到底有哪些命令發(fā)送給MongoDB去執(zhí)行。

執(zhí)行這個(gè)命令可能會(huì)出現(xiàn)如下錯(cuò)誤

[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)自動(dòng)安裝的是 1.0版本,所以我們還必須建立個(gè)軟連接

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ù)輸出到一個(gè)日志文件中,那么就可以保留下所有數(shù)據(jù)庫(kù)操作的歷史記錄,對(duì)于后期的性能分析和安全審計(jì)等工作將是一個(gè)巨大的貢獻(xiàn)。

Mongostat

此工具可以快速的查看某組運(yùn)行中的MongoDB 實(shí)例的統(tǒng)

計(jì)信息,也需要在打開(kāi)一個(gè)客戶端進(jìn)行命令操作:

用法如下:

[root@localhost bin]# ./mongostat

查看數(shù)據(jù)庫(kù)的狀態(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

}


當(dāng)前名稱:mongodb系統(tǒng)性能篇(1)
鏈接地址:http://weahome.cn/article/ihgppc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部