《Mongodb 優勢》要點:
本文介紹了Mongodb 優勢,希望對您有用。如果有疑問,可以聯系我們。
相關主題:非關系型數據庫
立即觀看完整教程,請直接訪問極客學院 Wiki
概述
MongoDB 是一款跨平臺、面向文檔的數據庫.用它創建的數據庫可以實現高性能、高可用性,并且能夠輕松擴展.MongoDB 的運行方式主要基于兩個概念:集合(collection)與文檔(document).
數據庫
數據庫是集合的實際容器.每一數據庫都在文件系統中有自己的一組文件.一個 MongoDB 服務器通常有多個數據庫.
集合
集合就是一組 MongoDB 文檔.它相當于關系型數據庫(RDBMS)中的表這種概念.集合位于單獨的一個數據庫中.集合不能執行模式(schema).一個集合內的多個文檔可以有多個不同的字段.一般來說,集合中的文檔都有著相同或相關的目的.
文檔
文檔就是一組鍵-值對.文檔有著動態的模式,這意味著同一集合內的文檔不需要具有同樣的字段或結構.
下表展示了關系型數據庫與 MongoDB 在術語上的對比:
關系型數據庫 | MongoDB |
---|---|
數據庫 | 數據庫 |
表 | 集合 |
行 | 文檔 |
列 | 字段 |
表 Join | 內嵌文檔 |
主鍵 | 主鍵(由 MongoDB 提供的默認 key_id) |
數據庫服務器 | 客戶端 |
---|---|
MySQL/Oracle | MongoDB |
mysql/sqlplus | mongo |
范例文檔
下面這個范例展示了一個簡單的博客站點的文檔結構,它是由逗號分隔的鍵值對構成的.
{
_id: ObjectId(7df78ad8902c)
title: 'MongoDB Overview',
description: 'MongoDB is no sql database',
by: 'tutorials point',
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100,
comments: [
{
user:'user1',
message: 'My first comment',
dateCreated: new Date(2011,1,20,2,15),
like: 0
},
{
user:'user2',
message: 'My second comments',
dateCreated: new Date(2011,1,25,7,45),
like: 5
}
]
}
_id 是一個 12 字節長的十六進制數,它保證了每一個文檔的唯一性.在插入文檔時,需要提供 _id
.如果你不提供,那么 MongoDB 就會為每一文檔提供一個唯一的 id._id
的頭 4 個字節代表的是當前的時間戳,接著的后 3 個字節表示的是機器 id 號,接著的 2 個字節表示 MongoDB 服務器進程 id,最后的 3 個字節代表遞增值.
優勢
任何關系型數據庫都采用一種典型的設計模式,展示表的數目以及表之間的關系.然而 MongoDB 卻沒有關系這個概念.
MongoDB 相比 RDBMS 的優勢
模式較少:MongoDB 是一種文檔數據庫,一個集合可以包含各種不同的文檔.每個文檔的字段數、內容以及文檔大小都可以各不相同.
采用單個對象的模式,清晰簡潔.
沒有復雜的連接功能.
深度查詢功能.MongoDB 支持對文檔執行動態查詢,使用的是一種不遜色于 SQL 語言的基于文檔的查詢語言.
具有調優功能.
易于擴展.MongoDB 非常易于擴展.
不需要從應用對象到數據庫對象的轉換/映射.
使用內部存儲存儲(窗口化)工作集,能夠更快地訪問數據.
為何選擇使用 MongoDB
面向文檔的存儲:以 JSON 格式的文檔保存數據.
任何屬性都可以建立索引.
復制以及高可擴展性.
自動分片.
豐富的查詢功能.
快速的即時更新.
來自 MongoDB 的專業支持.
MongoDB 適用的領域
大數據
內容管理及交付
移動及社會化基礎設施
用戶數據管理
數據中心
歡迎參與《Mongodb 優勢》討論,分享您的想法,維易PHP學院為您提供專業教程。