MongoDB总结 在nosql课堂上

排版太烦了放弃
https://www.jianshu.com/p/24d0249b5be5

一、Nosql简介

Nosql的全称为”not only sql”,为非关系型数据库。这类数据库的主要特点是:
非关系型、分布式、开源的、水平可扩展的。

Nosql最典型的应用为key-value存储。Nosql的最主要的用途是大数据的处理,这个问题在传统的关系型数据库中有严重的系统瓶颈,而nosql的诞生很好的解决了这个问题。
传统的数据库在应付web2.0网站,特别是超大规模和高并发的网站的时候,暴漏除了很多的问题。

系统对数据的需求
1.High performance (对数据库高并发读写的需求)
因为web2.0的网站要根据用户的需求实时生成动态页面和提供动态的信息,所以基本上不能使用页面缓存的技术。因此数据库的并发负载特别高。所以要应付上万次并发的读写请求,传统数据库就有点力不从心了。
2.High Storage (对海量数据的高效存储和访问需求)
对于一些大型的网站,每天都要产生海量的信息,以国外的fack book为例,每个月就要达到2.4亿条数据,对于关系型数据库来说,一张表存储2.5亿条数据,然后再对其查询,其效率是极其低下的。
3.High Scalability&&High Availability (高扩展性和高可用性需求)
在一个web结构中,数据库是很难横向扩展的。当一个系统的用户量和访问量增长特别大的时候,你没有办法像web service那样通过简单的添加硬
件和服务节点来扩展性能和负载能力。往往要进行数据迁移,这个事情对
于很多DBA来说是比较痛苦的。

#####关系型数据库的缺点
对于海量数据,关系型数据库对于实时性这点来说是很难做到的,如果想做到,必须增加数据库服务器,而数据库服务器有很多文件,例如:控制文件、数据文件、日志文件等。特别是控制文件的结构特别复杂,增加服务器就涉及到备份数据库,这个工作将是很庞大的。而且有的时候,需要涉及到添加硬件。这就需要消耗大量的资金。
关系型数据库一次读取,需要消耗很多资源。例如:先打通数据库的连接,再开启会话,然后发送请求即sql语句。数据库内部解析SQL语句也是一个比较复杂的过程。如果碰到一次性大批量的数据的读写要求,这对关系型数据库是很难做到效率比较高的。
Nosql特点
可以处理超大数量的数据
可以运行在便宜的PC上,成本比较低
在查询的过程中,没有了sql语句,所以减少了数据库解析sql语句的环节,这个环节没有了,大大的提升了系统的性能。
Nosql的产品都是开源的。我们可以清楚的了解最底层的事情。

2.Mongoldb
Mongodb是发展最快的,当下用的最多的nosql数据库。它是在非关系型数据库中最类似关系型数据库的数据库。特点如下:
支持强大而复杂的查询
能建立索引
是一个面向集合、模式自由的文档型数据库
面向集合
在这里集合的概念,类似于关系型数据库中表的概念。称为Collection。
模式自由

我们不需要在集合中做各种约束,在关系型数据库中,如果一个表定义完成以后,那么字段的名称、类型、约束就定义好了。在该数据库中,不需要提前给集合定义类型等。而是动态添加的。例如:
{“welcome”,”itcast”}
{“java”,”very good”}
这是两条记录,完全可以记录在一个Collection中。
文档型
我们存储的数据是键值对的集合,值可以是数据类型集合中的任意类型,包括数组和文档。

Mongo特点
面向集合存储,易于存储对象类型的数据
模式自由
支持动态查询
支持索引
支持查询
支持复制和故障恢复
使用高效的二进制存储,包括大型对象
支持处理碎片,以支持云计算层次的扩展性。
支持大部分语言(java,net.php…,并且提供了相应的驱动程序)

Mongodb的下载与安装
下载
Mongodb的下载网址为: http://downloads.mongodb.org/win32/mongodb-win32-i386-1.8.1.zip。这里要注意:windowXP的系统,2.0以上的版本是不支持的。

安装
设置mongodb程序存放的目录
将下载的文件解压,在c盘的根目录中创建一个文件夹c:\mongo,把解压后bin的文件夹放入到mongo中。
设置数据文件存放目录
在C盘下创建一个文件夹c:\db,该db文件夹就是数据文件存放的目录
启动MongoDB服务
进入cmd控制台,c:\mongo\bin\mongod.exe –dbpath=c:\db
在这里插入图片描述

从上图可以看出默认的端口号是27017
将mongodb作为window服务随机启动
先创建一个c:\mongo\log.mongodb.log文件,用于存储mongodb的日志文件。再安装系统服务:
在这里插入图片描述
在这里要注意:因为window服务是随机启动的,这就意味着如果把服务的窗口关闭以后,mongodb的服务就不存在了,所以这里是不能关闭mongodb的服务窗口的。要想成为window的服务,查看3.3
客户端验证链接
打开一个新的窗口,输入c:\mongo\bin\mongo,如果有如下的提示,说明能连上数据库服务了。
在这里插入图片描述
这个时候也可以通过查看c:\mongo\log\mongodb.log查看日志。

window服务
使用该命令创建就可以成为window的服务
c:\mongo\bin>mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --logpath c:\MongoDB.Log --dbpath c:\MongoDB --directoryperdb

在这里,serviceName指的就是window的服务
serviceDisplayName 指的是window的管理中服务的名称

4.Mongo的体系结构
一个运行着mongodb的数据库可以看做是一个mongodb server。该server由实例和数据库构成。

在一般情况下,一个mongoDB Server机器上包含一个实例和多个与之对应的的数据库。

但是在特殊情况下,允许一个mongoDB Server上有多个实例和多个数据库。

Mongodb的物理结构(数据文件和日志文件)和对应的逻辑结构(集合、文档)构成了mongodb的数据库。这个概念和oracle的系统结构的概念类似。

4.1 数据逻辑结构
Mongodb主要是由文档(document),集合(Collection)、数据库(database)这三部分组成。逻辑结构是面向用户的,用户在使用mongodb开发程序的时候,使用的就是逻辑结构。
Document
1、 document相当于数据库表中的一行记录。
2、可以随意的自定义document的结构,也就是说每一个document中的数据结构有可能是不一样的。可以在程序中随意的动态的定义document的结构。

4.2 Collection
Collection相当于关系数据库中的表,是由多个document组成的。
db
很多collection结合在一起,就形成了db。一个mongodb server支持多个数据库

4.3 关系
在这里插入图片描述

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值