广告
返回顶部
首页 > 资讯 > 数据库 >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简介

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

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

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

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

下载Word文档
猜你喜欢
  • MongoDB(一):NoSQL简介、MongoDB简介
    1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库。 1.2 为什么需要NoSQL 随着互联网web2.0网站的兴起,非...
    99+
    2019-07-31
    MongoDB(一):NoSQL简介 MongoDB简介
  • 1.MongoDB简介
    MongoDB简介最新内容会在源站更新.转载请保留原文链接: http://dashidan.com/article/mongodb/index.htmlMongoDB是2007年美国一个著名的广...
    99+
    2022-10-18
    中文手册 mongodb %d
  • NoSQL简介 - 纪宇
    NoSQL指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称,NoSQL是web2.0时代海量数据催生的产物 特点 不支持SQL语法 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的语法,以及...
    99+
    2017-09-23
    NoSQL简介 - 纪宇
  • MongoDB mongoexport工具的使用简介
    目录01  基本介绍02  常用参数03  命令04  经验值05  反向导入01  基本介绍   ...
    99+
    2022-11-11
    MongoDB mongoexport MongoDB mongoexport的使用
  • MongoDB客户端工具NoSQL Manager for MongoDB介绍
    目录一、安装二、连接客户端三、基本的日常操作1、shell2、日常数据增删改查① 可以在shell命令行执行。② 也可以直接通过GUI来实现。3、表复制① 数据库内复制表。② 跨数据...
    99+
    2022-11-13
    MongoDB 客户端工具 NoSQL Manager for MongoDB
  • 简要介绍MongoDB的数据模型
        MongoDB数据是特别灵活的,与SQL数据库相比,它不需要在插入数据前先定义表的结构。MongoDB的集合不强调固定的文档结构。这种灵活性使它能够轻松映射文档结构。每一个文档都...
    99+
    2022-10-18
    数据库 数据模型 nosql
  • MongoDB(1): 安装与配置及简介
    一.简介  MongoDB一种非关系型数据库(NoSql),是一种强大、灵活、可扩展的数据存储方式,因为MongoDB是文档模型,自由灵活很高,可以让你在开发过程中畅顺无比,对于大数据量、高并发、...
    99+
    2022-10-18
    db nosql mongo
  • MongoDB数据库简介与安装方法
    1、简介 MongoDB是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案。在高负载的情况下,添加更多的节点(分布式)...
    99+
    2022-11-13
    MongoDB 数据库简介 安装方法
  • MongoDB-Manual-Master 读书笔记-简介及安装
    MongoDB介绍1.1 什么是MongoDBMongoDB 是开源的文档数据库,提供了高性能、高可用性、高扩展性。1.1.1 文档数据库在MongoDB中一条记录称之为文档,也可以理解成关系数据库中的行。...
    99+
    2022-10-18
    读书笔记 install mongodb
  • Nacos简介(一)
    目录 一、概览 二、注册中心基本概念 1) 什么是注册中心? 2) 如果没有注册中心?会怎样 3) 注册中心主要有三种角色: 4) 服务注册中心的作用 5)CAP 理论 6)CP和AP的选择 三、什么是 Nacos? 四、Nacos 的关...
    99+
    2023-09-07
    java 注册中心 nacos
  • MongoDB 介绍
    MongoDB 由C++编写,是一个基于分布式文件存储的开源数据库系统,属于NoSQL在高负载情况下,可以添加更多的节点,可以保证服务器性能MongoDB旨在为WEB应用提供可扩展的高性能数据存储方案Mon...
    99+
    2022-10-18
    服务器 系统 数据库
  • nosql之mongodb简单安装与命令使用
    nosql:非关系型,分布式,不提供ACID    简单数据模型    元数据和应用数据分离   ...
    99+
    2022-10-18
    mongodb osql
  • Android Vold简介(一)
    Vold(volume Daemon),即Volume守护进程,用来管理Android中存储类的热拔插事件,处于Kernel和Framework...
    99+
    2022-06-06
    Android
  • NoSQL优缺点与MongoDB数据库简介
    一、NoSQL简介 互联网的迅速发展,这样大量的交互给数据库提出了更高的性能要求,传统的关系数据库虽然具备良好的事物管理,但在处理大量数据的应用时很难在性能上满足设计要求。NoSQL...
    99+
    2022-11-13
    NoSQL优缺点 MongoDB数据库
  • Python~~简介介绍
    Python (英国发音:/paθn/ 美国发音:/paθɑn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于...
    99+
    2022-10-18
    python 介绍 简介
  • Redis教程(一):Redis简介
    一、简介: 在过去的几年中,NoSQL数据库一度成为高并发、海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机。然而在众多产品中能够脱颖而出的却屈指可数,如Redis、MongoDB、Be...
    99+
    2022-06-04
    简介 教程 Redis
  • Nginx简介
    一、什么是Nginx Nginx是一个高性能的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。Nginx...
    99+
    2023-10-11
    nginx 服务器 运维 Powered by 金山文档
  • IPv6简介
    IPv6仅仅只是“长”吗?IPv6的地址长什么样?平时我们是怎么使用IPv6的呢?编写网络程序的时候要怎么处理IPv6?且待本篇一一道来。 为什么需要IPv6 全球的IP地址由一个名字叫IANA(Internet Assigned Num...
    99+
    2023-01-31
    简介
  • python简介
    Python是一种开源的面向对象编程语言随着人工智能与大数据分析的火热,python也随之火热起来Python应用广泛,特别适用以下几个方面1.系统编程:提供API(Application Programming Interface,应用程...
    99+
    2023-01-30
    简介 python
  • DevOps简介
    DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。     DevOps的概念 DevOps一词的来自于Development和Ope...
    99+
    2023-01-30
    简介 DevOps
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作