从本文开始,我们一起学习一下MongoDB相关内容,在学习MongoDB之前,首先要做的就是学习NoSQL。

为什么要学习NoSQL,原因很简单,因为MongoDB是NoSQL数据库的一种,换言之,如果NoSQL是一种数据库设计标准,那么MongoDB就是这种标准的一种实现,所以了解NoSQL能够让我们更深入的了解MongoDB。

1、什么是NoSQL

NoSQL是Not Only SQL的缩写,简单翻译就是非关系型数据库,意反SQL运动,是一项全新的数据库革命性运动,NoSQL提倡运用非关系型的数据存储。

2、NoSQL出现的原因

NoSQL的概念很早就有人提出,发展至2009年趋势越发高涨,原因有两方面:

一方面是随着web2.0的兴起,关系型数据库本身无法克服的缺陷表现的越来越明显,主要表现在:
        1、High performance - 对数据库高并发读写的需求 
        2、Huge Storage - 对海量数据的高效率存储和访问的需求 
        3、High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求

另一方面,对于web2.0网站来说,关系数据库的很多特性越来越显得无足轻重,主要表现在:
        1、数据库事务一致性需求 
        2、数据库的写实时性和读实时性需求 
        3、对复杂的SQL查询,特别是多表关联查询的需求

正式由于上述原因,NoSQL近年来发展的越来越快,尽管随着web2.0的出现关系型数据库的瓶颈越来越明显,但并不意味着关系型数据库就会退出历史的舞台。对于程序员而言,没有必要绝对的判定孰优孰劣,在实际的应用中选择合适的数据库才是最重要的。

3、NoSQL的优缺点

上面我们已经了解了NoSQL发展如此迅速的原因,接下来我们看一下Nosql的优势,主要体现在下面几点:
        1、简单的扩展
        2、快速的读写
        3、低廉的成本

任何事物都有其优点和缺点,NoSQL也不例外,NoSQL也存在着很多的不足,主要体现在下面几点:
        1. 不提供对SQL的支持
        2. 支持的特性不够丰富
        3. 现有产品的不够成熟

到此为止,相信你已经对NoSQL有了一个简单的了解,本篇文章的概念性比较重,讲解的也不够详尽,只需要大家简单了解一下就好,接下来我们重点学习一下MongoDB数据库。敬请关注!

深入浅出MongoDB(一)NoSQL的更多相关文章

  1. 深入浅出MongoDB(二)概述

    上次的博文深入浅出MongoDB(一)NoSQL中我们已经简单介绍了一下NoSQL的基本概念,这次我们来了解一下MongoDB的相关概念. 1.简介 MongoDB是一款由C++编写的高性能.开源.无 ...

  2. 深入浅出MongoDB(三)环境搭建

    上次的博文深入浅出MongoDB(二)概述中我们已经将MongoDB的相关概念讲解了一下,接下来我们继续进行MongoDB学习.在学习之前,大家首先需要在自己的电脑上安装MongoDB. 1.安装 安 ...

  3. [置顶] 深入浅出MongoDB(三)环境搭建

    上次的博文深入浅出MongoDB(二)概述中我们已经将MongoDB的相关概念讲解了一下,接下来我们继续进行MongoDB学习.在学习之前,大家首先需要在自己的电脑上安装MongoDB. 1.安装 安 ...

  4. Mongodb Mysql NoSQL的区别和联系

    MongoDB 什么是MongoDB? MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,皆在为WEB应用提供可扩展的高性能数据存储解决方案 MongoDB是一个介于关系数据库和非关系 ...

  5. 深入浅出MongoDB应用实战开发

    写在前面的话: 这篇文章会有点长,谨此记录自己昨天一整天看完<深入浅出MongoDB应用实战开发>视频时的笔记.只是在开始,得先抛出一个困扰自己很长时间的问题:“带双引号的和不带双引号的j ...

  6. (原创)MongoDB之NoSQL简介

    Nosql简介1.1系统对数据的需求        Nosql[Nosql主要用途大数据处理]的全称为”not only sql”,为非关系型数据库[非关系型数据库就是关系型数据库的所有特点都没有了, ...

  7. mongodb(一) NoSQL简介

    NoSQL简介   写在前面,本文就是学习的记录笔记,大部分内容都属于参考,分享给大家 关系与非关系数据库      那么应该了解下影响关系数据库性能的主要原因: 在关系型数据库中,导致性能欠佳的最主 ...

  8. MongoDB 1: NoSQL 和 SQL的区别

    导读:本篇博客,主要是结合自己在项目中的使用,简单的阐述一下NoSQL和SQL的区别.那么,根据自己的应用,NoSQL这边,选择的是MongoDB(Redis虽然也是,但属于内存存储,这里不予说明). ...

  9. mongodb 、nosql、 redis、 memcached 是什么?

    mongodb 是一个基于文档的数据库,所有数据是从磁盘上进行读写的.MongoDB善长的是对无模式JSON数据的查询.而Redis是一个基于内存的键值数据库,它由C语言实现的,与Nginx/ Nod ...

随机推荐

  1. 微信中得到的GPS经纬度放在百度,腾迅地图中不准的原因及处理

    微信中可以得到两种GPS坐标信息  默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' 一种是全球的正常GPS坐标信息 wgs84 . GPS,W ...

  2. springmvc的3中路径风格

    1.导入相应的jar包,文件放置情况 2.web.xml <?xml version="1.0" encoding="UTF-8"?> <we ...

  3. JS实例

    JS实例 1.跑马灯 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  4. POJ 2182【树状数组】

    题意: 每头牛有编号,他们乱序排成一排,每头牛只知道前边比自己序号小的有几位. 思路: 递推,最后一只牛的编号是确定的,然后不断进行区间更新,直到找到某个空位前方恰好有n个空位. 这题跟某道排队的题思 ...

  5. iOS 中@property() 括号中,可以填写的属性?

    通过@property 和 @synthesize 属性可以简化设置器(set)和访问器(get) 的代码. 在@property 中又有那些属性呢? readwrite 默认 readonly 只读 ...

  6. 强大的内网劫持框架之MITMf

    Mitmf 是一款用来进行中间人攻击的工具.它可以结合 beef 一起来使用,并利用 beef 强大的 hook 脚本来控制目标客户端.下面让我们一起看看如何在 Kali2.0上安装使用 Mitmf ...

  7. Flex 4 不同主题下容器子元素的管理方法

    Flex 下,容器主要分两类:Spark容器, Halo容器. Spark容器 Halo容器 说明 numElements numChildern 容器的子元素数量. addElement( ) ad ...

  8. MapReduce和Tez对比

    MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)". Tez是Apache开源的支持D ...

  9. 华为OJ平台——整形数组合并

    题目描述: 将两个整型数组按照升序合并,并且过滤掉重复数组元素 输入: 输入说明,按下列顺序输入: 1 输入第一个数组的个数 2 输入第一个数组的数值 3 输入第二个数组的个数 4 输入第二个数组的数 ...

  10. 对付ring0 inline hook

    对付ring0 inline hook的基本思路是这样的,自己写一个替换的内核函数,以NtOpenProcess为例,就是MyNtOpenProcess.然后修改SSDT表,让系统服务进入自己的函数M ...