文档详情

数据库2-存储-Infinite.ppt

发布:2017-04-16约1.19千字共14页下载文档
文本预览下载声明
数据库的存储;找名字为xxx的书; select * from book where name = xxx; 找作者为xxx的书; select * from book where auth = xxx; 找出作者xxx的书的数目; select count(1) from book where name = xxx;;先在检索室进行查找,获得编号,然后去获取图书。 需要多种检索手段。 有些结果甚至可以直接在检索室获得。 书的排放有两种方法。;一块一般保存100个节点; 层级一般是4级; 叶的数据是排序存放的; 保持一定的空隙; 动态树; 等值查找,范围查找; ;邮编,长途区号; HASH方法的选择比较重要; CPU操作跟内存操作比读取硬盘速度快; 动态变化; 等值查找速度快; ;并不负责实际的数据存储; 维护外部的连接和数据通讯; 进行SQL语义解析; 根据表结构和SQL语句,进行优化; 将优化后的SQL转为存储引擎API调用,提交给存储引擎; 存储引擎有MyISAM,InnoDB,Memory等;;MyISAM使用堆存放,InnoDB使用簇族索引; 是否事务; 锁颗粒; 文件结构不同; InnoDB可以缓存数据,可以建立自适应HASH索引; 一般使用InnoDB; ;5.6版本之前,存储引擎甚至无法知道检索条件; 一些排序,聚合也不由存储引擎负责; 优化器决定使用什么索引,以什么顺序执行SQL; 在命中缓存情况下,甚至不需要调用存储引擎; ;主从复制,主主复制; 增量备份; 恢复到某一时间点,或者跳过某一操作; 默认会一直增长; ;Key-Value形式; BSON格式存放; JS形式的查询语言; 使用复制集,sharding,可以动态增加删除; ;换掉解析器; 对插入的BSON进行遍历,插索引等; ;启动时候创建3个操作日志,共3G。 一个库建立一个目录,文件从64M到2G; 文件采用mmap的方法映射到内存; ;db.test.ensureIndex({userid:1},{unique:true}); db.test.find({hello:world,number:{$gte:1000}}); db.test.update({mailbox:abc@}, {$inc :{ score:3}, $addToSet:{mobile:120110119xxx, tag:3799881}}, true, true); db.test.aggregate( [ {$group:{_id:$i, total:{$sum:1}}} , {$match:{total:{$ge, 10}}} ] ); db.test.count({tag:/^11,/}); ;END
显示全部
相似文档