mongodb基础篇


基础篇基础篇 { "name" : "MongoDB", "type" : "database", "about" : { "create" : 2007, "first_version" : 2010, "current_version" : 2015 }, "features" : ["open-source","document-oriented","sharding"] } 初识 MongoDB 简介, 术语, 结构, 3.0 特性, 初识 MongoDB 简介, 术语, 结构, 3.0 特性, 初识mongoDB • 面向文档 (binary JSON) • schema free • 易扩展 • 自动故障转移 • 查询语言丰富 MQL • 使用内存映射文件(memory-mapped files) -- i.e. read-through write-through memory caching. • 支持地理空间索引(2d index), TTL索引 • 单个文档大小限制 16M (1.8以前为4M) • 不支持事务 • 不支持join 操作 初识mongoDB • 锁粒度,<2.2 全局的读写锁, 2.2~2.6 1个DB1个锁, 3.0 MMAPv1 provides collection-level locking • 对内存要求比较大,至少保证索引、热数据及系统开销都 能装进内存; -- 如果可以 indexSize + storageSize <= RAM • 需要较大的硬盘空间,MongoDB会回收被删除的数据块, 但不会还给操作系统 • 每个collection都有一个默认的ObjectId;_id 可自定义, 值不可变更 • 默认"_id" : ObjectId("513ff10eda6c71894416ad8e") RDBMS MongoDB Table, View ➜ Collection Row ➜ Document Index ➜ Index Join ➜ Embedded Document Foreign Key ➜ Reference Partition ➜ Shard 初识mongoDB 术 语 初识mongoDB 1 Doc 初识mongoDB 结构结 构 mongoDB 3.0 • 新的用户模块 • 新的存储引擎 — WiredTiger document-Level Locking compression 更高并发,更高写性能 • 开放插件式存储引擎API MongoDB Query Language insert, remove, update, find, MongoDB Query Language • insert > use cloud # 如果数据库不存在,则创建DB > db.contact.insert({name : "小明"}) # 文本集写入记录,不需建表 > db.contact.insert([{_id:1002 ,name : "丽丽"},{name:"Jhon"},{na me:"Jack",city:"sz"}]) # 可以一次写入多个文档 # 如果不指定 _id ,则使用默认的 ObjectId • remove > db.contact.remove({name:"Jhon"}) > db.contact.remove({}) MongoDB Query Language • update (query,update,options) > db.contact.update({_id:1001},{$set$set:{name:"王小明"}}) # $set 将字段值设定为指定值 > db.ids.update({_id:"contact"},{$inc$inc:{seq:1}}) # $inc 对数字的增减操作 > db.contact.update({_id:1001},{$rename$rename:{"uid":"uuid"}}) # $rename 字段重命名 > db.contact.update({},{$unset$unset:{test:""}}, {multi : true} ) # $unset 删除符合条件的test 字段 SQL : MQL : MongoDB Query Language • find > db.contact.find() # 返回文本集contact 的所有文档及字段 > db.contact.find({uid:"b2cf"},{name:1}) # 返回 uid="b2cf" 的name 值 # SQL: select name from contact where uid = 'b2cf' ; > db.contact.find({ts:{$gte:Timestamp(1429027200,0),$lt : Time stamp(1429100395,233)}}).limit(10) # 返回unixtime时间范围内的10 个文档 > db.contact.find({name : /^王/}).sort({ts:-1}) # 返回王姓的文档并按时间倒序 ~ like '王%'; > db.contact.find({name:{$in:["Jack","小明"]}}) # 返回name为"Jack" 和 "小明" 的文档 Replica sets 什么是replica sets, 结构, Read preference modes, Replica sets What's Replica Sets ? • 多个mongod 实例组成的集群 • 集群只有一个primary 节点 • 所有写操作在primary 进行 • 读可以在集群的任何数据节点 • 数据通过replication同步到各个secondary 节点 • 自动故障转移 • 一个集群支持节点多达50个 Replica sets 结 构 Replica sets Read Preference Modes • 5 modes -- primary [only, default] -- primaryPreferred -- secondary -- secondaryPreferred -- Nearest 数据集接近单个节点硬盘存储容量? 单台服务器内存不够用? 写操作频繁,磁盘IO达到极限? Sharding Sharding • shard 保存了sharding集群的数据分片,通常是一个replica sets, 数据分片以collection为单位. • shard key collection数据分片的键值. • chunks mongodb根据shard key将数据分成块,按照rang、 hash或tag-aware规则将数据块储存到各个shard. 默认块大小为 64M. Sharding • config server 保存了sharding集群元数据,如:分片的位置. 通常设置三个config server. • mongoS query router 让sharding集群像一个整体 缓存config server元数据 • auto-balancing ? Thank you ~ http://weibo.com/tzhijunhttp://weibo.com/tzhijun
还剩21页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

haizdl

贡献于2016-07-12

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf