文档详情

MongoDB入门到精通-PPT版.pdf

发布:2019-08-10约1.67万字共68页下载文档
文本预览下载声明
MongoDB技术分享 @zhangyu 什么是MongoDB? 为什么我会使⽤它? MongoDB是什么? {name:’mongo’,type:’DB’} MongoDB (from “humongous”) MongoDB是⼀个开源、可扩展、⾼性能、⾯ 向⽂档⽂的数据库,⽤C++编写。 浅探原理 内存映射存储引擎 MongoDB采⽤内存⽂件映射引擎(MMAP)将⽂件映射 到进程空间,当查询某块数据时操作系统会以Page⽅式 把这块数据加⼊物理内存。写⼊数据时,会先把数据保存 到内存中,然后Flush⼀次进⾏持久化存储。MongoDB中 默认每分钟Flush⼀次。这部分的管理⼯作由操作系统完 成。 客户端 内存 硬盘 浅探原理 数据⽂件 DBname.0, DBname.1, DBname.2 … DBname.0 DBname.1 DBname.2 DBname.3 ⺫录: 1. ⾯向⽂档存储(Document-Oriented Storage) 2. 全索引⽀持(Full Index Support) 3. 复制⾼可⽤性(Replication High Availability ) 4. ⾃动分⽚(Auto-Sharding) 5. 查询(Querying) 6. Map / Reduce 7. GridFS ⾯向⽂档存储 (Document-Oriented Storage) ⽂档是什么? {name:’zhangyu’, email:’zhangyuu@gall.me’} 看起来是JSON 其实是BSON ⼆进制编码序列化的JSON扩展 {hello: world} \x16\x00\x00\x00\x02hello\x00 \x06\x00\x00\x00world\x00\x00 优点:轻巧、⾼效、灵活 缺点:BSON的开销在序列化上 BSON是JSON扩展 JSON表现⼒有限,因为只有类型: null 、布尔、数字、字符串、数组、对象 BSON扩展了类型: 时间、正则表达式、函数… BSON是JSON扩展 ⽇期:{ “time” : new Date() } 正则表达式:{“regex” : /test/ } 函数:{“function” : function(){/**/} } …… /manual/reference/bson-types/ { //传统 “Status”:0, //数组,包含2个元素 “Messages”:[ “0”, “1” ], // 内嵌⽂档 “ResponseBody”:{ “name”:“zhangyu” , “email” :[ “zhangyuu@gall.me” , “uuzhangyu@” ] } //Java newDate() “Date”:ISODate(2013-11-25T17:32:45.427+-800) } BSON是JSON扩展 NULL 没有值 Boolean true、false 数字 仅⽀持64位浮点数,其他类型的数字会⾃动转化为此格式 字符串 ⽀持UTF-8字符集 ⽇期 存储标准纪元开始的毫秒数,不含时区 new Date();
显示全部
相似文档