购买

¥30.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 MongoDB技术交流

MongoDB技术交流.ppt

MongoDB技术交流

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《MongoDB技术交流ppt》,可适用于IT/计算机领域

MongoDB技术交流年月廖诚*wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)议题一、需求背景二、传统SQL的瓶颈三、NoSQL的优势四、CAP理论五、NoSQL的不足六、NoSQL应用现状七、几种典型NoSQL的对比八、重点介绍MongoDBwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)一、需求背景wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:sersfind({},{name:,age:})wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB读操作)SORT#select*fromusersorderbyage>dbusersfind()sort({age:})#select*fromusersorderbysexasce,agedesc>dbusersfind()sort({sex:,age:}))SLICE#select*fromusersskiplimit>dbusersfind()skip()limit()ConditionalOperators#select*fromuserswheresex=‘male’andage>andage<>dbusersfind({sex:"male",age:{$gt:,$lt:}})比较操作包括:$gt(>)、$lt(<)、$gte(>=)、$lte(<=)、$ne(!=)wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB读操作)IN#select*fromuserswhereagein(,)>dbusersfind({age:{$in:,}})对应的操作符有$nin(notin))COUNT#selectcount(*)fromuserswhereage>>dbusersfind({age:{$gt:}})count())OR#select*fromuserswhereage=orage=>dbusersfind({$or:{age:},{age:}})#select*fromuserswhereage<=orage>=>dbusersfind({$or:{age:{$lte:}},{age:{$gte:}}})wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB写操作)INSERT#insertintousersvalue(…)>dbusersinsert({name:"Jimmy",sex:"male",age:}))UPDATE#updateuserssetage=,sex=wherename=‘Jimmy‘>dbusersupdate({name:"Jimmy"},{$set:{age:,sex:"female"}})update(criteria,objNew,upsert,mul)有几个参数需要注意criteria:需要被更新的条件表达式objNew:更新表达式upsert:如目标记录不存在是否插入新文档multi:是否更新多个文档wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB写操作)UPDATE#updateuserssetage=age>dbusersupdate({},{$inc:{age:}},false,true)#updateuserssetage=age,sex=‘male’wherename=‘Joe‘>dbusersupdate({name:"Joe"},{$inc:{age:}}))REMOVE用于删除单个或全部文档删除后的文档无法恢复>id=dbusersfindOne({name:"lili"})id>dbusersremove(id)>dbusersremove()移除所有wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB高级操作Distinct>dbusersdistinct("name")"Joe","lili","Jimmy","Jeremy"Group#SELECTname,sum(marks)FROMuserwherename='foo' GROUPBYname>dbusergroup({key:{‘name’:true},cond:{‘name’:‘foo’},reduce:function(obj,prev){prevmsum=objmarks},initial:{msum:}})wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、MongoDB操作MongoDB高级操作Indexsingleascending>dbcolorsensureIndex({name:})unique>dbcolorsensureIndex({email:},{unique:true})singledescending>dbcolorsensureIndex({createdat:})compound>dbcolorsensureIndex({name:,createdat:})wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、ReplicaSets副本集副本集架构图PrimarySecondarySecondarywwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、ReplicaSets副本集角色介绍Primary主服务器写操作只能在其身上发生通过保存操作日志(oplog)然后异步同步到多个Secondary上。Secondary从服务器热机备份主服务器上的数据分担主机读压力当主机故障发生随时待命接管主机工作。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、ReplicaSets副本集主从服务器间数据同步图wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、ReplicaSets副本集主从服务器间数据同步红色箭头表示写操作写到Primary上然后异步同步到多个Secondary上。蓝色箭头表示读操作可以从Primary或Secondary任意一个上读。各个Primary与Secondary之间一直保持心跳同步检测用于判断ReplicaSets的状态。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片集群架构图wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)角色介绍ShardServermongod实例存储实际数据的模块。ConfigServermongod实例存储集群元数据、分片信息等。RouteServermongos实例客户端访问统一接入点处理数据访问路由查询优化数据合并、排序、裁剪请求推送等。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片机制图wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片机制介绍分片是指将数据拆分将其分散在不同机器上的过程。通过分片能够增加更多的机器来应对不断增加的负载和数据。MongoDB何时分片:机器的磁盘不够用单个mongod已经不能满足写数据的性能需求想将大量的数据放在内存中提高性能一般来说集群先从不分片开始然后在需要时才转换成分片。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片机制介绍MongoDB的分片是指定一个分片key来进行数据按范围分成不同的chunk每个chunk的大小有限制。有多个分片节点保存这些chunk每个节点保存一部分的chunk。每一个分片节点都是一个ReplicaSets这样保证数据的安全性。当一个chunk超过其限制的最大体积时会分裂成两个小的chunk。当chunk在分片节点中分布不均衡时会引发chunk迁移操作。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片机制介绍假设有一个用户文档集合如果选择“name”作为片键第一片可能会存放名字以A~F开头的文档第二片存G~P的名字第三片存的Q~Z的名字。“A”,”F”(Shard)“G”,”P”(Shard)“Q”,”Z”(Shard)wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片服务角色图wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片服务角色介绍客户端访问路由节点mongos来进行数据读写。config服务器保存了两个映射关系一个是key值的区间对应哪一个chunk的映射关系另一个是chunk存在哪一个分片节点的映射关系。路由节点通过config服务器获取数据信息通过这些信息找到真正存放数据的分片节点进行对应操作。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、Sharding(分片)分片服务角色介绍路由节点还会在写操作时判断当前chunk是否超出限定大小如果超出就分列成两个chunk。对于按分片key进行的查询和update操作来说路由节点会查到具体的chunk然后再进行相关的工作。对于不按分片key进行的查询和update操作来说mongos会对所有下属节点发送请求然后再对返回结果进行合并。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构在文件系统中为每个数据库预分配逐渐增长大小的文件集这样可以有效地避免潜在的文件系统碎片使数据库操作更高效。一个数据库的文件集从序号开始分配大小依次是MMMMGG然后就是一直G的创建下去(位系统最大到M)。数据库文件在内部会被切分成多个数据域数据域之间使用双向链表连接。名字空间用于区分不同的存储类别比如每个collection有一个独立的名字空间每个索引也有自己的名字空间。名字空间与数据域间的关系:wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构 test    test   testtabletest testtable testtable testfreelistwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构名字空间与数据域:每个名字空间可以有不同的数据域在磁盘上不必连续。图中还有一个特殊的名字空间freelist存放着不再使用的数据域例如删除集合或索引产生的数据域。当名字空间分配新的数据域时系统会先查找空闲列表看看有没有适合大小的数据域可用。在每一个数据域中保存了具体一行行BSON格式的数据这些数据也是通过双向链表连接。每一行数据存储空间不仅包括数据占用空间还可能包含一部分附加空间这使得在数据update变大后可以不移动位置。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构索引数据也保存在数据文件中不过索引是被组织成Btree结构而不是双向链表。对每个数据库都有一个命名空间文件用于保存每个名字空间对应的元数据。我们通过查询这些元数据来找到对应的名字空间的数据存储位置。下面通过gen工程师MathiasStearn的发言稿介绍数据文件结构:wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构每个数据库都有相应的数据文件和命名空间文件。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构数据文件从MB开始新的数据文件比上一个文件大一倍最大为GB。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构数据文件使用MMAP进行内存映射会将所有数据文件映射到内存中但只是虚拟内存只有访问到这块数据时才会交换到物理内存。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构MongoDB的数据文件映射到内存表中的位置。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构使用位机器的话内存地址最大可以标识GB内存。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构但是在位机器上GB内存会有GB被内核占用大约GB会用于mongod进程的stack空间只剩下大约GB可用于映射数据文件。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构使用位机器的话内存地址最大可以标识TB内存。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构每个数据文件被分成一个一个的数据块。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构块与块之间用双向链表连接。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构在命名空间文件中保存的是一个哈希表存储了每个名字空间对应的元数据包括其大小块数第一块位置最后一块位置被删除的块的链表以及索引信息。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构这些位置通过DiskLoc数据结构进行存储存储了数据文件编号和块在文件中的位置。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构对每一个块来说其头部包含了一些块的元数据比如自己的位置上一个块和下一个块的位置。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构以及块中第一条和最后一条记录的位置指针。剩下的部分用于存储具体的数据具体数据之间也是通过双向链表进行连接。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构MongoDB尽管在数据存储上与传统关系数据库很不一样但是在索引构建上却几乎是与传统关系型数据库一致。主要是使用了Btree作为索引结构。Btree多路搜索树并不是二叉的以下介绍其主要特点:wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构Btree特点wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构Btree特点)任意非叶子结点最多只有M个儿子且M>。)根结点的儿子数为,M。)每个结点存放至少M和至多M个关键字且唯一。)非叶子结点的关键字:K,K,…,KM且Ki<Ki。)非叶子结点的指针:P,P,…,PM其中P指向关键字小于K的子树PM指向关键字大于KM的子树其它Pi指向关键字属于(Ki,Ki)的子树。)所有叶子结点位于同一层。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构Btree搜索从根结点开始如果查询的关键字与结点的关键字相等那么就命中否则如果查询关键字比结点关键字小就进入左儿子如果比结点关键字大就进入右儿子如果左儿子或右儿子的指针为空则报告找不到相应的关键字。下面一篇文章是gen工程师KyleBanker所写他拿食谱举例讲解了索引的基本实现非常形像。原文链接:http:kylebankercomblogthejoyofmongodbindexeswwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构唯一索引想像你要在一本没有目录的食谱上查找某一道菜的做法唯一的办法可能就是从头到尾把这本几百页的书看一遍直到找到你想找的菜。而一个快速的方法就是给菜谱加上一个目录目录中有每一道菜的名字及与其相对应的页数并且菜名是按字母顺序排列这样你就可以按首字母快速地找到你菜谱的页数了。wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构唯一索引举例:水饺水煮肉片,水煮鱼wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构非唯一索引但是如果我今天买了条鱼想查一下所有跟鱼相关的做法那么用上面的索引就没办法了。于是出现下面一种索引构建方法即将所有菜的材料构建目录这时候一个材料对应多道菜。举例:鱼,,,,,,…猪肉,,,,,…白菜,,,,,,…wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构联合索引还有另一种需求如果我知道材料里有鱼而我又知道这道菜的名字就不用查找到材料后去翻看后面几个具体页的菜再来选择了。举例:鱼水煮鱼,红烧带鱼酸菜鱼wwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecomwwwleadtonecom中文大标题:pt颜色:RGB字体:黑体(加粗阴影)英文大标题:pt颜色:RGB字体:Arial(加粗阴影)正文子目录(级)颜色:RGBRGB中文字号:pt英文字号:pt中文字体:黑体(加粗)英文字体:Helvetica(加粗)正文(级):pt颜色:黑色灰色(黑)中文字体:华文细黑英文字体:TimesNewRoman目录页浅色深色系(自选)目录中文标题:pt颜色:反白字体:黑体(阴影)目录英文标题:pt颜色:反白字体:Arial(斜体阴影)、数据文件内部结构联合索引猪肉红烧肉小炒肉回锅肉白菜白菜汤,……无限地享受无线的生活**

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/85

¥30.0

立即购买

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利