NoSQL优缺点与MongoDB数据库简介

一、NoSQL简介

互联网的迅速发展,这样大量的交互给数据库提出了更高的性能要求,传统的关系数据库虽然具备良好的事物管理,但在处理大量数据的应用时很难在性能上满足设计要求。NoSQL就是主要为了解决当下大量高并发高要求的数据库应用需求,由于关系数据库具有严格的参照性,一致性,可用性,原子性,隔离性等特点,因此会产生一些例如表连接等操作,这样会大大降低系统的性能。而在当前很多应用场景下对性能的要求远远强于传统数据库关注的点,NoSQL 就是为了解决大规模数据与多样数据种类等问题,尤其是中大数据的相关问题。

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它指的是非关系型的数据库,是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基本要求,比如说遵循SQL 标准、ACID 属性、表结构等等。NoSQL 最早被提出是在20 世纪80 年代,在当时更多是强调的是与关系数据库区别对待,最近这些年被提及的更多是强调协助解决大数据等相关问题,NoSQL 在大数据时代有自己的意义。

1、NoSQL 数据库适用于哪些情况?

  • (1). 数据模型比较简单;
  • (2). 需要灵活性更强的IT 系统;
  • (3). 对数据库性能要求较高;
  • (4). 不需要高度的数据一致性;
  • (5). 对于给定key,比较容易映射复杂值的环境。

2、什么时候建议使用NoSQL ?

  • (1). 对数据库高并发读写的需求;
  • (2). 对海量数据的高效率存储和访问的需求;
  • (3). 对数据库的高可扩展性和高可用性的需求。

3、NoSQL 和传统数据库有什么区别?

NoSQL属于非结构型数据库,没有行、列的概念,用JSON 来存储数据,集合就相当于“表”,文档就相当于“行”。

4、NoSQL 有哪些种类?

  • 键值(Key-Value)存储数据库
    这一类数据库主要会用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单,易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/Value就显得效率低下了。如常见的Redis数据库,Memcached等
  • 列存储数据库
    这部分数据库通常用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
  • 文档型数据库
    文档型数据库的灵感来自于Lotus Notes办公软件,而且它与键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如MongoDB,国内也有文档型数据库SequoiaDB,已经开源。
  • 图形(Graph)数据库
    图形结构的数据库同其他行列及刚性结构的SQL数据库不同,它使用灵活的图形模型,并且能够拓展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要特定的数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如Graph

二、MongoDB简介

参考地址

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型。

Mongo 最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它的特点是高性能、易部署、 易使用,存储数据非常方便。

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

1、主要特点

  • MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
  • 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
  • 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
  • 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
  • Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
  • MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
  • Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
  • Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
  • Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
  • GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
  • MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
  • MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
  • MongoDB安装简单。

2、MongoDB 工具

有几种可用于MongoDB的管理工具。

监控

  • MongoDB提供了网络和系统监控工具Munin,它作为一个插件应用于MongoDB中。
  • Gangila是MongoDB高性能的系统监视的工具,它作为一个插件应用于MongoDB中。
  • 基于图形界面的开源工具 Cacti, 用于查看CPU负载, 网络带宽利用率,它也提供了一个应用于监控 MongoDB 的插件。

GUI

  • MongoDB Compass: 官方图形界面管理工具
  • NoSQL Manager for MongoDB: Windows的mongodb管理工具
  • RockMongo: 最好的PHP语言的MongoDB管理工具,轻量级, 支持多国语言

到此这篇关于NoSQL优缺点与MongoDB数据库的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • MongoDB系列教程(一):NoSQL起源

    为什么出现NoSQL? 随着互联网的发展,当我们把一台服务器一台服务器变成两台服务器,当我们开始建立数据备份,当我们需要加一个缓冲层,来调整所有的查询,投入更多的硬件. 最后,需要将数据切分多个集群上,并重构大量的应用逻辑以适应这种切分.不久之后,你就会发现被自己数月前的设计数据结构限制住了. 随着web2.0的兴起,关系型数据库本身无法克服的缺陷越来越明显,主要表现为如下几点. 1.对数据高并发读写的需求 2.对海量数据的高效率存储和访问的需求. 3.对数据库的高可扩展性和高可用性的需求. 4

  • Linux系统安装NoSQL(MongoDB和Redis)步骤及问题解决办法(总结篇)

    如下是我工作中的记录,介绍的是linux系统下NoSQL:MongoDB和Redis的安装过程和遇到的问题以及解决办法: 需要的朋友可以按照如下步骤进行安装,可以快速安装MongoDB和Redis,希望可以帮助大家:)! 一.MongoDB 1.MongoDB安装 (1)将安装包mongodb-linux-i686-3.0.2.tgz拷贝到要安装的服务器中 这里我用的rz命令,如果不支持需要安装yum -y install lrzsz (2)解压安装程序 tar xzvf mongodb-lin

  • PHP对MongoDB[NoSQL]数据库的操作

    一.MongoDB简介 MongoDB (名称来自"humongous") 是一个可扩展的.高性能.开源.模式自由.面向文档的数据库,集文档数据库.键值对存储和关系型数据库的优点于一身.官方站点:http://www.mongodb.org/,MongoDB特点: •面向文档存储(类JSON数据模式简单而强大)•动态查询•全索引支持,扩展到内部对象和内嵌数组•查询记录分析•快速,就地更新•高效存储二进制大对象 (比如照片和视频)•复制和故障切换支持•Auto-Sharding自动分片支

  • 关于NoSQL之MongoDB的一些总结

    NoSQL已经流行了很长一段时间,那么究竟是什么场景下你才更需要用到这些"新兴事物",就比如MongoDB?下面是一些总结: 你期望一个更高的写负载 默认情况下,对比事务安全,MongoDB更关注高的插入速度.如果你需要加载大量低价值的业务数据,那么MongoDB将很适合你的用例.但是必须避免在要求高事务安全的情景下使用MongoDB,比如一个1000万美元的交易. 不可靠环境保证高可用性 设置副本集(主-从服务器设置)不仅方便而且很快,此外,使用MongoDB还可以快速.安全及自动化

  • NoSQL优缺点与MongoDB数据库简介

    一.NoSQL简介 互联网的迅速发展,这样大量的交互给数据库提出了更高的性能要求,传统的关系数据库虽然具备良好的事物管理,但在处理大量数据的应用时很难在性能上满足设计要求.NoSQL就是主要为了解决当下大量高并发高要求的数据库应用需求,由于关系数据库具有严格的参照性,一致性,可用性,原子性,隔离性等特点,因此会产生一些例如表连接等操作,这样会大大降低系统的性能.而在当前很多应用场景下对性能的要求远远强于传统数据库关注的点,NoSQL 就是为了解决大规模数据与多样数据种类等问题,尤其是中大数据的相

  • MongoDB数据库简介与安装方法

    1.简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.旨在为WEB应用提供可扩展的高性能数据存储解决方案.在高负载的情况下,添加更多的节点(分布式),可以保证服务器性能.MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 2.MongoDB数据结构 MongoDB支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.MongoDB将数据存储为一个文档,数据结构由键值(Ke

  • Spring Boot中使用MongoDB数据库的方法

    MongoDB数据库简介 简介 MongoDB是一个高性能,开源,无模式的,基于分布式文件存储的文档型数据库,由C++语言编写,其名称来源取自"humongous",是一种开源的文档数据库──NoSql数据库的一种.NoSql,全称是 Not Only Sql,指的是非关系型的数据库. 特点 MongoDB数据库的特点是高性能.易部署.易使用,存储数据非常方便.主要功能特性有: * 面向集合存储,易存储对象类型的数据. * 模式自由. * 支持动态查询. * 支持完全索引,包含内部对象

  • MongoDB数据库安装配置、基本操作实例详解

    本文实例讲述了MongoDB数据库安装配置.基本操作.分享给大家供大家参考,具体如下: 1.简介 NO SQL:NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是对不同于传统的关系数据库管理系统(RDBMS)的统称.NoSQL用于超大规模数据的存储,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. RDBMS NOSQL - 高度组织化结构化数据 - 结构化查询语言(SQL) - 数据和关系都存储在单独的表中. - 数据操纵语言,数据定

  • Python操作MongoDb数据库流程详解

    1.简介 MongoDB是一个基于分布式文件存储的文档数据库,可以说是非关系型(NoSQL,Not Only SQL)数据库中比较像关系型数据库的一个,具有免费.操作简单.面向文档.自动分片.可扩展性强.查询功能强大等特点,对大数据处理支持较好,旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成.MongoDB文档类似于JSON对象.字段值可以包含其他文档,数组及文档数组. 2.应用 MongoDB数据库可以到网

  • 老生常谈MongoDB数据库基础操作

    为了保存网站的用户数据和业务数据,通常需要一个数据库.MongoDB和Node.js特别般配,因为Mongodb是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像.本文将详细介绍MongoDB数据库 数据库 数据库,顾名思义,是数据存储的仓库,主要功能有两个 1.有组织地存放数据 与在磁盘上自己存放文件不同,数据库替用户组织了数据的存储形式,用户只需要按照数据库提供的接口将数据写入,数据便会按照标准的格式被存

  • Node.js连接MongoDB数据库产生的问题

    NoSQL的代表MongoDB最近大受欢迎,虽然还有一些功能没有完善,但是并不影响它的大火. Node.js是使用JavaScript 编写的可以运行在服务端的JS语言. 那么,二者碰撞会产生什么样的火花呢. 今天,我就以一个简单的例子介绍一下(在本地新建数据库文件并将其内容显示到浏览器窗体): 1.准备部分:所需要的工具IDE为WebStorm,MongoDB,Node.js. 1)首先需要下下载MongoDB并且配置环境变量(Path  指向安装目录) 第一步:建立MongDB服务输入命令

  • windows与mac安装mongodb数据库的方法步骤与注意事项

    nosql数据库 --mongodb数据库! Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐.Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中每一条记录都是一个Document对象.Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作. windows 安装 这里我说的是命令行安装方法 准备.到官网下载相应的版本 http

  • 浅析Python与Mongodb数据库之间的操作方法

    MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON). 1. 安装Mongodb和pymongo Mongodb的安装和配置 Mongodb的安装教程请网上搜索, 安装完成后,    进行以下配置过程: 1.1 创建目录, 该目录为Mongodb数据文件的存放目录: *注: 本人使用的不是root用户, 所以修改目录的拥有者. * sudo mkdir /data sudo chown -R python:python /data mkdir /da

  • mongodb数据库入门学习笔记之下载、安装、启动、连接操作解析

    本文实例讲述了mongodb数据库下载.安装.启动.连接操作.分享给大家供大家参考,具体如下: 简介: MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 1.下载 从官网下载压缩包, 官网地址:https://www.mongodb.com/download-center/v2/community. 下载命

随机推荐