MongoDB学习笔记(一)——MongoDB简介

MongoDB数据库是一种可扩展的敏捷NoSQL数据库,它是基于文档存储模型。在这种模型下,数据会被存储为文档,而不是我们熟知的例如MySQL、Oracle等的行和列的存储。文档是以BSON对象的形式存储。

MongoDB旨在实现一个高性能、高可用、可自动扩展的数据存储,MongoDB因为速度快、可扩展性强、易于实现、为需要存储用户评论、博客和其他内容的网站提供了极佳的后端存储解决方案:

  • 面向文档:MongoDB的数据存储是以文档存储的,其数据在数据库中的存储格式与服务器端脚本和客户端处理的格式非常接近,这避免了将数据在行和对象之间进行转换。

  • 高性能:MongoDB是市面上性能最高的数据库之一。

  • 高可用性:MongoDB的复制模型使其很容易保持高可用性,同时能够提供高性能和高扩展性。

  • 高可扩展性:MongoDB的结构使得能够将数据分布到多台服务器,从而是轻松的实现横向扩展。

  • 对SQL注入攻击免疫:MongoDB将数据存储为对象,而不是使用SQL字符串,因此对SQL注入攻击免疫。

NoSQL

NoSQL 简史

NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。

2009年,Last.fm的Johan Oskarsson发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。

2009年在亚特兰大举行的”no:sql(east)”讨论会是一个里程碑,其口号是”select fun, profit from real_world where relational=false;”。因此,对NoSQL最普遍的解释是”非关联型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。

NoSQL从字面上理解:不是SQL,这个SQL一般代表的是数据库而且是特指mysql、Oracle这种传统的关系型数据库,那NoSQL也就是说不是关系型数据库。另外一种解释则是“not only SQL”,即“不仅仅是SQL”,这旨在强调NoSQL数据库并非SQL的替代品,它实际上也可以使用类似于SQL的查询概念。

NoSQL是一个术语,它并不是特指哪种特定的数据库,而是涵盖了除传统的关系型数据库管理系统(RDBMS)之外的所有数据库。NoSQL数据库专用于存储特定类型的数据,因此大多数情况下效率和性能都高于RDBMS。

NoSQL现在的产品有很多,其中最典型的就是Redis和MongoDB,其一般实现存储数据的结构有以下几种:

  • 文档存储数据库
    文档存储数据库采用面向文档的方法来存储数据,其理念是可讲单个实体的所有数据都存储在一个文档中,而文档可存储在集合中。其代表就是MongoDB、CouchDB。

  • 键/值数据库
    该种类型的存储是最简单的NoSQL数据库,这些数据库存储数据时不采用任何模式,键可指向任何数据类型,从对象到字符串值,再到编程语言的函数。
    键/值存储的有点是易于实现和添加数据因此非常适合用于提供基于键来存储和检索数据的简单存储,缺点是无法根据存储的值来查找元素。其代表是Redis。

  • 列存储数据库
    列存储数据库是在键空间内以列的方式存储数据,其中键空间基于独一无二的名称、值和时间戳。这类似与键/值数据库,但列存储数据库适合用于存储根据时间戳来区分有效内容和无效内容的数据,这提供了这样的有点,即能够让数据库中存储的数据过期。部分代表 Hbase、Cassandra、Hypertable

  • 图存储数据库
    图存储数据库是为能够轻松将数据表示为图,这意味着元素通过他们之间的关系相关联,而这些关系的数量是不确定的,就像家谱、社会关系、航线拓扑图或标准交通图那样。部分代表Neo4J、FlockDB

  • 对象存储
    通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。其代表为db4o、Versant

  • xml数据库
    高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。其代表为Berkeley、DB

NoSQL的优点/缺点
优点:

- 高可扩展性
- 分布式计算
- 低成本
- 架构的灵活性,半结构化数据
- 没有复杂的关系

缺点:

- 没有标准化
- 有限的查询功能(到目前为止)
- 最终一致是不直观的程序

下面就开始MongoDB的学习,当然如果你想要直接学习MongoDB的理论只是,那么直接从MongoDB学习笔记(十一)开始,如果你想了解如何搭建MongoDB以及MongDB shell 以及MongoDB Compass,就直接看下一篇

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值