Presentation is loading. Please wait.

Presentation is loading. Please wait.

MongoDB简介.

Similar presentations


Presentation on theme: "MongoDB简介."— Presentation transcript:

1 MongoDB简介

2 2 mongoDB 1 NoSql 3 基本语法 4 关系结构 5 C#开发 2

3 什么是NoSQL NoSQL( Not Only SQL )是一种与关系型数据库管理系统截然不同的数据库管理系统,它的数据存储格式可以是松散的、通常不支持Join操作 为什么使用NoSQL: 对数据库高并发读写。High performance 对海量数据的高效率存储和访问。Huge Storage 对数据库的高可扩展性和高可用性。High Scalability && High Availability 弱点: 数据库事务一致性需求 数据库的写实时性和读实时性需求 对复杂的SQL查询,特别是多表关联查询的需求

4 NoSQL四大类 1.Key-Value存储 2.列式数据库 3.文档型数据库 4.图结构数据库

5 Key-Value存储类型 Examples
Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 典型应用场景 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 数据模型 Key 指向 Value 的键值对,通常用hash table来实现 强项 查找速度快 弱项 数据无结构化,通常只被当作字符串或者二进制数据

6 列式数据库 Examples Cassandra, HBase, Riak 典型应用场景 分布式的文件系统 数据模型
以列簇式存储,将同一列数据存在一起 强项 查找速度快,可扩展性强,更容易进行分布式扩展 弱项 功能相对局限

7 文档型数据库 Examples CouchDB, MongoDB 典型应用场景
Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) 数据模型 Key-Value对应的键值对,Value为结构化数据 强项 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 弱项 查询性能不高,而且缺乏统一的查询语法。

8 图结构数据库 Examples Neo4J, InfoGrid, Infinite Graph 典型应用场景
社交网络,推荐系统等。专注于构建关系图谱 数据模型 图结构 强项 利用图结构相关算法。比如最短路径寻址,N度关系查找等 弱项 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

9

10 MongoDB简介 MongoDB is an open-source document database that provides high performance, high availability, and automatic scaling. A record in MongoDB is a document, which is a data structure composed of field and value pairs. MongoDB documents are similar to JSON objects. MongoDB使用BSON作为数据存储和传输的格式。BSON是一种类似JSON的二进制序列化文档,支持嵌套对象和数组。

11 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。

12 MySQL term Mongo term/concept database table collection index row BSON document column BSON field join embedding and linking primary key _id field group by aggregation Stored Procedure Stored JavaScript

13 特点 高性能、易部署、易使用,存储数据非常方便。 面向集合存储,易存储对象类型的数据。 模式自由。 支持动态查询。
支持完全索引,包含内部对象。 支持查询。 支持复制和故障恢复。 使用高效的二进制数据存储,包括大型对象(如视频等)。 自动处理碎片,以支持云计算层次的扩展性 支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++语言的驱动程序, 社区中也提供了对Erlang 及.NET等平台的驱动程序。 文件存储格式为BSON(一种JSON的扩展) 可通过网络访问

14 功能 . 面向集合的存储:适合存储对象及JSON 形式的数据
动态查询:MongoDB 支持丰富的查询表达式。查询指令使用JSON 形式的标记, 可轻易查询文档中内嵌的对象及数组。 完整的索引支持:包括文档内嵌对象及数组。MongoDB 的查询优化器会分析查询表 达 式,并生成一个高效的查询计划。 查询监视:MongoDB 包含一系列监视工具用于分析数据库操作的性能。 复制及自动故障转移:MongoDB 数据库支持服务器之间的数据复制,支持主-从模式 及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片) 自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加 额外的机器。

15 0|1|2|3|4|5|6|7|8|9|10|11 _id:507fbbb2a7b49259f1bf274c
mongoDB的最小存储单位就是文档对象,对应于关系型数据库的行,数据在mongo中以BSON(Binary-JSON)文档的格式存储在磁盘上。每一个文档对象, mongo都会为它分配一个唯一的id号,名为“_id”。 { _id : ObjectId( “xxxxxxxx" ) , name : “MongoDB", gender : "M", address : "Beijing" } 如果不显式创建_id,mongo会自动创建并为它分配一个唯一的值,作为该文档对象的唯一标识。 大文件如何存储? _id:507fbbb2a7b49259f1bf274c 0|1|2|3|4|5|6|7|8|9|10|11 时间戳 机器 PID 计数器

16 跟一般的key-value数据库不一样的是,它的value中存储了结构信息,所以它提供了嵌入式的文档结构。

17 JSON BSON

18 SQL

19 MongoDB安装 Windows平台的安装 1.下载解压 2.创建数据存放文件夹 3.启动MongoDB
MongoDB is self-contained and does not have any other system dependencies. 1.下载解压 2.创建数据存放文件夹 3.启动MongoDB

20 MongoDB安装 4.安装为Window 服务 5.客户端连接测试 创建Log\mongo.log日志文件
创建文件mongod.cfg文件,手工创建或者使用以下命令 命令行中:如果命令中有空格要使用双引号 5.客户端连接测试

21 mongod参数说明 名称 说明 dbpath
数据文件存放路径,每个数据库会在其中创建一个子目录,用于防止同一个实例多次运行的mongod.lock 也保存在此目录中 logpath 日志文件 logappend 日志采用追加模式(默认是覆写模式) bind_ip 对外服务的绑定ip,一般设置为空,及绑定在本机所有可用ip 上 port 对外服务端口(27017)。Web 管理端口在这个port 的基础上+1000 fork 以后台Daemon 形式运行服务 journal 开启日志功能,通过保存操作日志来降低单机故障的恢复时间 syncdelay 系统同步刷新磁盘的时间,单位为秒,默认是60 秒 directoryperdb 每个db 存放在单独的目录中,建议设置该参数 maxConns 最大连接数 repairpath 执行repair 时的临时目录。在如果没有开启journal,异常down 机后重启,必须执行repair操作 cfg配置文件

22 客户端GUI工具 .NET平台下

23 MongoDB操作 MongoDB Shell使用JavaScript 常用命令 help show dbs 显示所有数据的列表 db
显示当前数据库对象或者集合 use 连接到一个指定的数据库

24 db db.help()

25

26 MongoDB - 连接

27 MongoDB 数据插入

28 MongoDB 数据修改和删除 remove() 用于删除单个或全部文档,删除后的文档无法恢复。 删除Collection数据

29 MongoDB查询 简单查询

30 支持正则表达式 Javascript 查询和$where 查询

31 排序1,-1 游标

32 MapReduce MongoDB 的 MapReduce 相当于 Mysql 中的"group by"

33 存储过程 MongoDB的存储过程是使用JavaScript来写的。 MongoDB 存储过程是存储在 db.system.js 表
function addNumbers( x , y ) { return x + y; } db.system.js.save({_id:"addNumbers", value:function(x, y){ return x + y; }});

34 索引 MongoDB 提供了多样性的索引支持,索引信息被保存在 system.indexes 中,且默认总是为_id
创建索引,它的索引使用基本和 MySQL 等关系型数据库一样。 基本索引 文档性索引 组合索引 唯一索引 强制使用索引

35 GridFS GridFS是MongoDB的一个内置功能。使用GridFS可以基于MongoDB来持久存储文件.
并且支持分布式应用(文件分布存储和读取) GridFS的基本原理是将文件保存在两个Collection中(fs.chunks和fs.files),一个保存文件索引,一个保存文件内容,文件内容按一定大小分成若干块,每一块存在一个Document中,这种方法不仅提供了文件存储,还提供了对文件相关的一些附加属性(比如MD5值,文件名等等)的存储。 Mongofiles list db.fs.files.find() Db.chunks.find()

36 关系结构 MongoDB建模有两种方式,一种是内嵌(Embed),另一种是连接(Link)。
Link:MongoDB References有两种:一种是 手动引用(Manual References),另一种是DBRefs。

37 关系结构 Embed

38 MongoDB开发 http://api.mongodb.org/csharp/current/

39 管理工具

40 MongoDB架构 分片(sharding)是MongoDB用来将大型集合分割到不同服务器(或者说一个集群)上锁采用的方法。


Download ppt "MongoDB简介."

Similar presentations


Ads by Google