iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MongoDB(一):NoSQL简介、MongoDB简介
  • 629
分享到

MongoDB(一):NoSQL简介、MongoDB简介

MongoDB(一):NoSQL简介MongoDB简介 2019-07-31 09:07:18 629人浏览 猪猪侠
摘要

1. NoSQL简介 1.1 什么是Nosql NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库。 1.2 为什么需要NoSQL 随着互联网WEB2.0网站的兴起,非

1. NoSQL简介

1.1 什么是Nosql

NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库

1.2 为什么需要NoSQL

随着互联网WEB2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0 网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:

1.2.1 High perfORMance-对数据库高并发读写的需求

web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘10就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。

1.2.2HugeStorage-对海量数据的高效率存储和访问的需求

类似Facebook, twitter, Friendfeed 这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。

1.2.3 High Scalability && High Availability-对数据库的高可扩展性和高可用性的需求

在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server 和app server 那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。 

1.3 主流NoSQL产品

NoSQL 数据库的四大分类如下: 

键值(Key-Value)存储数据库 :

相关产品: Tokyo Cabinet/Tyrant. Redis. Voldemort. Berkeley DB

典型应用:内容缓存, 主要用于处理大量数据的高访问负载。

数据模型:一 系列键值对

优势:快速查询

劣势:存储的数据缺少结构化

列存储数据库 :

相关产品: Cassandra, HBase, Riak

典型应用:分布式的文件系统

数据模型:以列簇式存储,将同一列数据存在一起

优势:查找速度快,可扩展性强,更容易进行分布式扩展

劣势:功能相对局限

文档型数据库 :

相关产品: CouchDB、 mongoDB

典型应用: Web应用(与Key-Value类似,Value是结构化的)

数据模型:一系列键值对

优势:数据结构要求不严格

劣势:查询性能不高, 而且缺乏统一的查询语法 

图形(Graph)数据库: 

相关数据库: Neo4J、 InfoGrid、 Infinite Graph

典型应用:社交网络

数据模型:图结构

优势:利用图结构相关算法

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。 

1.4 NoSQL特点 

在大数据存取上具备关系型数据库无法比拟的性能优势,例如: 

易扩展

NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

大数据量,高性能

NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

灵活的数据模型

NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个疆梦。这点在大数据量的Web2.0时代尤其明显。

高可用

NoSQL 在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra, HBase模型,通过复制模型也能实现高可用。


综上所述,NoSQL 的非关系特性使其成为了后Web2.0时代的宠儿,助力大型Web2.0网站的再次起飞,是一项全新的数据库革命性运动。 

2. MonGoDB简介

MongoDB是一个基于分布式文件存储的NoSQL数据库。

c++语言编写,运行稳定,性能高。

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

2.1 MongoDB特点

模式自由:可以把不同结构的文档存储在同一个数据库里

面向集合的存储:适合存储JSON风格文件的形式

完整的索引支持:支持完全索引,包含内部对象。

复制和高可用性:支持服务器之间的数据复制,支持主从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移

自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器

丰富的查询:支持丰富的表达方式,查询指令使用jsON形式的标记,可轻易查询文档中的内嵌的对象及数组

快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划。

高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)

2.2 MongoDB历史 

2007年10月,MongoDB由10gen团队所发展。2009年2月首度推出。

2012年05月23日,MongoDB2.1 开发分支发布了! 该版本采用全新架构,包含诸多增强。

2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。

2013年04月23日,MongoDB 2.4.3 发布,此版本包括了一些性能优化,功能增强以及bug修复。

2013年08月20日,MongoDB 2.4.6 发布。

2013年11月01日,MongoDB 2.4.8 发布。

……

2.3 MongoDB优点

到目前为止,MongoDB是一个新的和普遍使用的数据库。 它是一个基于文档的非关系数据库提供程序。

关系数据库具有典型的架构设计,可以显示表的数量以及这些表之间的关系,而在MongoDB中则没有关系的概念。

优点:

MongoDB 的架构较少。它是一个文档数据库,它的一个集合持有不同的文档。

从一个到另一个的文档的数量,内容和大小可能有差异。

MongoDB 中单个对象的结构很清淅。

MongoDB 中没有复杂的连接。

MongoDB 提供深度查询的功能,因为它支持对文档的强大的动态查询。

MongoDB 很容易扩展。

它使用内部存储器来存储工作集,这是其快速访问的原因。

MongoDB的独特功能:

使用方便

重量轻/轻量级

比RDBMS快得多

应该在哪些场景使用MongoDB呢?

大而复杂的数据

移动和社会基础设施数据

内容管理和交付

用户数据管理

数据中心

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB(一):NoSQL简介、MongoDB简介

本文链接: http://www.lsjlt.com/news/2561.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MongoDB mongoexport工具的使用简介
    目录01  基本介绍02  常用参数03  命令04  经验值05  反向导入01  基本介绍   ...
    99+
    2024-04-02
  • MongoDB客户端工具NoSQL Manager for MongoDB介绍
    目录一、安装二、连接客户端三、基本的日常操作1、shell2、日常数据增删改查① 可以在shell命令行执行。② 也可以直接通过GUI来实现。3、表复制① 数据库内复制表。② 跨数据...
    99+
    2024-04-02
  • MongoDB数据库简介与安装方法
    1、简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案。在高负载的情况下,添加更多的节点(分布式)...
    99+
    2024-04-02
  • Nacos简介(一)
    目录 一、概览 二、注册中心基本概念 1) 什么是注册中心? 2) 如果没有注册中心?会怎样 3) 注册中心主要有三种角色: 4) 服务注册中心的作用 5)CAP 理论 6)CP和AP的选择 三、什么是 Nacos? 四、Nacos 的关...
    99+
    2023-09-07
    java 注册中心 nacos
  • NoSQL优缺点与MongoDB数据库简介
    一、NoSQL简介 互联网的迅速发展,这样大量的交互给数据库提出了更高的性能要求,传统的关系数据库虽然具备良好的事物管理,但在处理大量数据的应用时很难在性能上满足设计要求。NoSQL...
    99+
    2024-04-02
  • Python~~简介介绍
    Python (英国发音:/paθn/ 美国发音:/paθɑn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于...
    99+
    2024-04-02
  • Django简介
    MVC与MTV模型MVCWeb服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的、松耦合的方式连接在一起,模型负责业务对象与数据库的映射(ORM),视图负责与用户...
    99+
    2023-01-30
    简介 Django
  • IPv6简介
    IPv6仅仅只是“长”吗?IPv6的地址长什么样?平时我们是怎么使用IPv6的呢?编写网络程序的时候要怎么处理IPv6?且待本篇一一道来。 为什么需要IPv6 全球的IP地址由一个名字叫IANA(Internet Assigned Num...
    99+
    2023-01-31
    简介
  • java3d简介
    Java3D用其自己定义的场景图和观察模式等技术构造了3D的上层结构,实现了在Java平台使用三维技术。本文在原理上着重介绍Java3D特有的两个重要概念:场景图(Scene Graph)、观察模式(View Model)。在接口使用上的...
    99+
    2023-01-31
    简介 java3d
  • Python——简介
    1、Python社区 Pypi:https://pypi.org/GitHub:https://github.com/StackOverFolw:https://stackoverflow.com/开源中国:https://www.osc...
    99+
    2023-01-31
    简介 Python
  • VMotion简介
    源起:...
    99+
    2023-06-04
  • JavaScript 简介
    JavaScript 是世界上最流行的脚本语言。 JavaScript 是属于 web 的语言,它适用于 PC、笔记本电脑、平板电脑和移动电话。 JavaScript 被设计为向 HTML 页面增加交互性。 许多 HTML 开发者都不是程序...
    99+
    2023-06-03
  • MySQL简介
    MySQL介绍:简介、特点与应用示例 概述:MySQL是当前最常用的关系型数据库管理系统之一。作为一个开源的数据库管理系统,MySQL具有许多优点,如高性能、可靠性强以及易于使用等。本...
    99+
    2024-02-22
    mysql sql 数据库
  • Python-简介
      @ Python的由来    Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Pyt...
    99+
    2023-01-30
    简介 Python
  • Python 简介
    Python介绍与特点(自学python知识整理) Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计: Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于P...
    99+
    2023-01-31
    简介 Python
  • OpenCV简介
    OpenCV简介 OpenCV(开源计算机视觉库:http://opencv.org)是一个开源库,包含数百种计算机视觉算法。OpenCV 具有模块化结构,主要包括下列模块: 核心功能(core) - 定义基本数据结构的紧凑模块,包括密集多...
    99+
    2023-08-30
    opencv 人工智能 计算机视觉
  • argparse简介
    一、argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数。 ar...
    99+
    2023-09-01
    python
  • PowerShell简介
    PowerShell 简介:PowerShell 是一种命令行 shell 和脚本语言一体化工具。 它被设计为任务引擎,使用 cmdlet 来包装用户需要执行的任务。 在 PowerShell 中,...
    99+
    2023-09-07
    linux 运维 服务器
  • Ajax简介
    一、Ajax简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指⼀种创建交互式⽹⻚应⽤的⽹⻚开发技术。 Ajax 是⼀种⽤于创建快速动态⽹⻚的技术。 Aja...
    99+
    2023-09-02
    ajax javascript 服务器
  • DevOps简介
    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。     DevOps的概念 DevOps一词的来自于Development和Ope...
    99+
    2023-01-30
    简介 DevOps
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作