vs做網(wǎng)站怎樣添加圖片鄭州網(wǎng)站seo外包公司
一、mongodb概述
mongodb是最流行的nosql數(shù)據(jù)庫(kù),由C++語(yǔ)言編寫(xiě)。其功能非常豐富,包括:
- 面向集合文檔的存儲(chǔ):適合存儲(chǔ)Bson(json的擴(kuò)展)形式的數(shù)據(jù);
- 格式自由,數(shù)據(jù)格式不固定,生產(chǎn)環(huán)境下修改結(jié)構(gòu)都可以不影響程序運(yùn)行;
- 強(qiáng)大的查詢語(yǔ)句,面向?qū)ο蟮牟樵冋Z(yǔ)言,基本覆蓋sql語(yǔ)言所有能力:
- 完整的索引支持,支持查詢計(jì)劃;
- 支持復(fù)制和自動(dòng)故障轉(zhuǎn)移;
- 支持二進(jìn)制數(shù)據(jù)及大型對(duì)象(文件)的高效存儲(chǔ);
- 使用分片集群提升系統(tǒng)擴(kuò)展性;
- 使用內(nèi)存映射存儲(chǔ)引擎,把磁盤(pán)的IO操作轉(zhuǎn)換成為內(nèi)存的操作:
mongodb中幾個(gè)概念 :
實(shí)例: 一個(gè)mongodb的服務(wù)進(jìn)程就是一個(gè)實(shí)例。
庫(kù): 一個(gè)庫(kù)里有多個(gè)集合。
集合: 表的概念,表里可以存多條文檔。
文檔: 就是數(shù)據(jù)的概念,mongodb中數(shù)據(jù)統(tǒng)稱為文檔。
關(guān)系如下圖所示:
二、 mongodb的特點(diǎn)
- mongodb對(duì)Bson(json)格式的數(shù)據(jù)處理很友好。我們可以不遍歷json格式中的key,而是直接獲取json中key所對(duì)應(yīng)的值。
- mongodb讀寫(xiě)的QPS比mysql等關(guān)系型數(shù)據(jù)庫(kù)快很多。
- 數(shù)據(jù)存儲(chǔ)占用空間小
- 對(duì)事物支持不友好,對(duì)聯(lián)表查詢支持不友好。
綜上所述,當(dāng)我們可以存儲(chǔ)json格式的數(shù)據(jù)時(shí),且無(wú)需考慮事務(wù),無(wú)需聯(lián)表查詢時(shí),可以考慮使用mongodb來(lái)代替關(guān)系型數(shù)據(jù)庫(kù),使應(yīng)用輕量級(jí)。
三、 索引,執(zhí)行計(jì)劃,慢sql
數(shù)據(jù)庫(kù)三板斧:索引、執(zhí)行計(jì)劃和開(kāi)啟慢sql。mongodb都支持。這里不再過(guò)多展開(kāi)概述。當(dāng)然,mongodb也支持集群模式和數(shù)據(jù)分片機(jī)制。
四、 Bson數(shù)據(jù)格式
mongodb采用的是Bson數(shù)據(jù)格式進(jìn)行存儲(chǔ)。BSON 全稱“Binary Serialized Document Format”,譯為“二進(jìn)制序列化文檔格式”。
Bson數(shù)據(jù)格式并非只能在mongodb中使用。我們?cè)谧约旱膽?yīng)用中,也可以執(zhí)行Bson來(lái)定義數(shù)據(jù)結(jié)構(gòu)。使用時(shí)需要引入Bson類(lèi)庫(kù)的包,然后定義Bson類(lèi)型的數(shù)據(jù)進(jìn)行操作即可。因?yàn)锽son占用的空間更小,查詢性能更高,所以可以考慮使用Bson定義數(shù)據(jù)結(jié)構(gòu)。
bson與json的比較如下:
幾個(gè)注意點(diǎn)是:
數(shù)據(jù)結(jié)構(gòu):json是像字符串一樣存儲(chǔ)的,bson是按結(jié)構(gòu)存儲(chǔ)的(像數(shù)組 或者說(shuō)struct)
存儲(chǔ)空間: bson>json
操作速度: bson>json。比如,遍歷查找:json需要掃字符串,而bson可以直接定位
修改:json也要大動(dòng)大移,bson就不需要。
bson增加了“byte array”數(shù)據(jù)類(lèi)型。這使得二進(jìn)制的存儲(chǔ)不再需要先base64轉(zhuǎn)換后再存成json,大大減少了計(jì)算開(kāi)銷(xiāo)和數(shù)據(jù)大小。