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