MongoDB簡介


數據庫管理系統

前言

1、數據的定義:文字、圖像、地理位置信息(坐標、經緯度)等

2、數據庫管理系統的定義:建立、存取和管理數據,保證數據安全和完整性的軟件

3、常見的數據庫管理系統:

關系型:MySQL、Oracle、SQL Server、Db2等
非關系型:MongoDB、Redis、HBase等

NOSQL簡介

NoSQL=Not Only SQL,支持類似SQL的功能, 與Relational Database相輔相成。

其適用於性能較高,不使用SQL意味着沒有結構化的存儲要求(SQL為結構化的查詢語句),沒有約束之后架構更加靈活。

NoSQL數據庫四大家族

列存儲:Hbase

鍵值(Key-Value)存儲:Redis

圖像存儲:Neo4J

文檔存儲:MongoDB

NoSQL的優勢

高可擴展性、分布式計算、沒有復雜的關系、低成本、架構靈活、半結構化數據。

MongoDB

MongoDB特性

 

MongoDB與RDBMS的最大區別:

沒有固定的行列組織數據結構,即無需將不同類的數據放入多張表中建立對應關系並分別存儲其數據,而是直接放入一份文檔進行存儲。

數據存儲格式

JSON

MongoDB使用JSON(JavaScript ObjectNotation)文檔存儲記錄

JSON數據庫語句可以容易被解析

Web應用大量使用

NAME-VALUE配對

BSON

二進制的JSON,JSON文檔的二進制編碼存儲格式

BSON有JSON沒有的Date和BinData

MongoDB中document以BSON形式存放

{
    _id: ObjectID("1"),
    username: “Silence”,
    regDate: “10-10-2015”,
    scores: {
        math: "80",
        english: "200"
    }
}

MongoDB優勢

存儲引擎比較

MySQL

InnoDB

MongoDB

MAPI

MongoDB

WiredTiger

事務

YES

NO

NO

鎖粒度

ROW-level行級鎖

Collection-level

Document-level

Geospatial

YES

YES

YES

MVCC

YES

NO

NO

Replication

YES

YES

YES

外鍵

YES

NO

NO

數據庫集群

NO

YES

YES

B-TREE索引

YES

YES

YES

全文檢索

YES

YES

YES

數據壓縮

YES

NO

YES

存儲限制

64TB

NO

NO

表分區

YES

YES(分片)

YES(分片)

數據邏輯結構

文檔(document)、集合(collection)、數據庫(database)

MongoDB與RDBMS數據結構邏輯對比:

MongoDB

RDBMS

集合Collection

表Table

文檔Document

行Row

數據庫Database

數據庫Database

索引值Index

索引值Index

嵌入式文件Embedded Document

合並Join

引用Reference

外鍵Foreign Key

分片Shard

分區Partition

MongoDB適用場景

  • 網站數據:MongoDB 非常適合實時的插入,更新與查詢,並具備網站實時數據存儲所需的復制及高度伸縮性
  • 緩存:由於性能很高,MongoDB 也適合作為信息基礎設施的緩存層。在系統重啟之后,由 MongoDB 搭建的持久化緩存層可以避免下層的數據源過載
  • 大尺寸,低價值的數據:使用傳統的關系型數據庫存儲一些數據時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲
  • 高伸縮性的場景:MongoDB 非常適合由數十或數百台服務器組成的數據庫。MongoDB的路線圖中已經包含對 MapReduce 引擎的內置支持
  • 用於對象及 JSON 數據的存儲:MongoDB 的 BSON 數據格式非常適合文檔化格式的存儲及查詢
我的數據量是有億萬級或者需要不斷擴容
需要2000-3000以上的讀寫每秒
新應用,需求會變,數據模型無法確定
我需要整合多個外部數據源
我的系統需要99.999%高可用
我的系統需要大量的地理位置查詢
我的系統需要提供最小的latency
我要管理的主要數據對象 <10

以上條件滿足一個可以考慮MongoDB,滿足兩個選擇MongoDB不會后悔。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM