什么是NoSQL?

NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。

NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

RDBMS vs NoSQL

RDBMS 
- 高度组织化结构化数据 
- 结构化查询语言(SQL) (SQL) 
- 数据和关系都存储在单独的表中。 
- 数据操纵语言,数据定义语言 
- 严格的一致性
- 基础事务

NoSQL 
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
-键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理 
- 高性能,高可用性和可伸缩性

NoSQL的优点/缺点

优点:

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

缺点:

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

NoSQL 数据库分类

类型 部分代表 特点
列存储

Hbase

Cassandra

Hypertable

顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。

文档存储

MongoDB

CouchDB

文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。

key-value存储

Tokyo Cabinet / Tyrant

Berkeley DB

MemcacheDB

Redis

可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)

图存储

Neo4J

FlockDB

图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。

对象存储

db4o

Versant

通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。

xml数据库

Berkeley DB XML

BaseX

高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。

MongoDB、Redis、HBase数据库的区别

MongoDB做高性能数据库,Redis做缓存,HBase做大数据分析。MongoDB还无法取代关系型数据库。
传统关系型数据库面对数据规模、数据模型复杂时的不足,导致了NoSQL的快速发展,后者易扩展,性能高,支持灵活的数据模型。
MongoDB是高性能、无模式的文档型数据库,支持二级索引,非常适合文档化格式的存储及查询。MongoDB的官方定位是通用数据库,确实和MySQL有些像,现在也很流行,但它还是有事务、join等短板,在事务、复杂查询应用下无法取代关系型数据库。
Redis是内存型Key/Value系统,读写性能非常好,支持操作原子性,很适合用来做高速缓存。
HBase存储容量大,一个表可以容纳上亿行、上百万列,可应对超大数据量要求扩展简单的需求。Hadoop的无缝集成,让HBase的数据可靠性和海量数据分析性能(MapReduce)值得期待。

什么是MongoDB ?

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

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

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

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

主要特点

  • 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安装简单。
下载mongodb安装包:https://www.mongodb.com/download-center#atlas

安装mongodb软件:根据你的系统下载 32 位或 64 位的 .msi 文件,下载后双击该文件,按操作提示安装即可。mongodb compass 是可视化的数据库操作界面,安装后方便操作。它的作用相当于mysql数据库中的mysql font的作用。我们这里将mongodb安装在默认c盘目录下。C:\Program Files\MongoDB\Server\3.6

注意:安装中不要选择安装mongodb compass,因为这个软件下载很慢,如果网速有一点不稳定就会安装不成功,所以要单独下载。

创建数据目录和日志目录:MongoDB将数据目录存储在 db 目录下。将日志目录存储在log目录下。这里分别创建J:\mongodb\db和J:\mongodb\log两个目录。

创建配置文件:配置文件名为mongod.cfg。该文件必须设置 systemLog.path 参数,包括一些附加的配置选项更好。这里具体配置内容如下:

systemLog:destination: filepath: J:\mongodb\log\mongod.log
storage:dbPath: J:\mongodb\db

将配置文件存放在 C:\Program Files\MongoDB\Server\3.6目录下。

安装mongodb服务:

在命令窗口先cd到mongodb安装目录的bin目录下。再使用mongod.exe启动服务

cd C:\Program Files\MongoDB\Server\3.6\bin\
mongod.exe --config "C:\Program Files\MongoDB\Server\3.6\mongod.cfg" --install

启动mongodb服务(参数为数据存放路径):

mongod --dbpath J:\mongodb\db

启动mongodb服务后,就可以使用mongodb数据库了,但是命令窗口不能关闭。

由于mongodb都需要在bin目录下启动mongod.exe或者mongo.exe来完成,你可以将mongodb的安装目录C:\Program Files\MongoDB\Server\3.6\bin添加系统环境变量path中。我们这里添加到了环境变量中。

MongoDB 后台管理 Shell

如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo.exe文件,MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。

当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):

以后对Shell数据库的操作我们都在Shell窗口中进行。当然我们要学习的主要还是使用python连接操作mongodb数据库。

windows下MongoDB数据库的安装相关推荐

  1. Windows下MongoDB数据库基本使用

    Windows下MongoDB数据库基本使用 上一篇文档中已经讲述了如何在windows环境下安装MongoDB数据库,详情查看https://blog.csdn.net/LXF_space1/art ...

  2. FreeBSD下MongoDB数据库的安装

    MongoDB是C++开发的一款开源.无模式的文档型数据库,具有高性能.易部署.易使用.数据存储方便等特点:MongoDB采用Bson(binary json)的形式存储数据,无锁,无事务,有索引,支 ...

  3. Windows下MySQL数据库的安装、配置及C++使用案例

    1 安装及配置 Windows判断本地是否安装mysql以及mysql安装过程_企鹅要去银河思考人生!!!的博客-CSDN博客_windows查看是否安装mysql 注意按照文中提示,配置好环境变量. ...

  4. Windows下MongoDB安装及创建用户名和密码

    Windows下MongoDB安装及创建用户名和密码 下载MongoDB的安装文件https://www.mongodb.com/download-center#community,选择合适的版本(注 ...

  5. Windows下MongoDb服务安装及用户权限创建

    2019独角兽企业重金招聘Python工程师标准>>> 1.为什么我要写这个blog?虽然网上的教程满天飞,但都是按照正常流程来写,我写的这个文档包含了我安装服务是遇到的各种问题及处 ...

  6. Ubuntu14.04下Mongodb数据库可视化工具安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 前期博客 Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐) Ubuntu14.04下Mongodb官网安装部署步骤(图 ...

  7. mongodb数据库的安装 for windows版本 0916

    mongodb数据库的安装 for windows版本 0916 官方下载 参考网址 Windows 平台安装 MongoDB | 菜鸟教程 https://www.runoob.com/mongod ...

  8. Ubuntu16.04下Mongodb官网安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 在这篇博客里,我采用了非官网的安装步骤,来进行安装.走了弯路,同时,也是不建议.因为在大数据领域和实际生产里,还是要走正规的为好. Ubuntu16.04下Mongodb(离线安 ...

  9. Windows下MySQL数据库更改数据存储位置

    Windows下MySQL数据库更改数据存储位置 1.创建一个新的存储数据文件 比如,我创建了一个文件  E:\MySQL_Service ,用来放mysql数据. 2.找到配置文件my.ini和my ...

最新文章

  1. 2021年大数据Flink(三十一):​​​​​​​Table与SQL案例准备 依赖和​​​​​​​程序结构
  2. php+icu+库是什么意思,如何从PHP Intl(ICU库)中的货币代码获取货币符号
  3. 排序算法学习——冒泡排序
  4. 12星座程序员写代码
  5. CF1556E-Equilibrium【栈,树状数组】
  6. Jw-alipay 1.0.0版本发布,开源支付窗管理平台
  7. 如何寻找灵感?让那些小众但富有创意的页面告诉你
  8. Python筛选Excel文件中超过一定年龄的人员信息
  9. windows--bat--删除当前脚本del %0
  10. VS2010 + OpenCV2.3配置 ; 在VS2010下安装配置OpenCV2.3 ; 全程截图,绝对能配置好,不能的留言!...
  11. matlab转变图像位深,[转载]matlab 图像处理命令 (转)
  12. Eclipse查看JDK源码报错——Failed to create the part’s controls
  13. 好好工作,别想不开去创业。
  14. Atitit aes 加密法php实现
  15. 常用的python科学计算库有哪些_python科学计算常用的数学科学计算库有哪些?
  16. 比较两个数的大小的代码比较:(C语言)
  17. 红米手机使用应用沙盒动态修改运营商参数
  18. php 对账单系统,PHP实现微信对账单处理
  19. 测试额外任务而撒旦法 速度速度发撒旦法
  20. python 探索性分析_python中的探索性文本分析

热门文章

  1. Java ME游戏编程_Java ME游戏编程(第2版)
  2. 【动态规划笔记】背包方案数量
  3. 【python笔记】:python简介
  4. 【PYTHON 笔记】:捕捉异常
  5. 开源数字媒体资产管理系统:Razuna
  6. 单用户模式 启动 mysql_单用户模式连接以及故障排除
  7. pandas 设置多重索引_pandas dataframe多重索引常用操作
  8. 什么是hibernate N+1查询
  9. NYOJ105 - 九的余数
  10. linux系统 qt开发,老板让我写一个Windows程序,结果我在Linux下用Qt开发