资源预览内容
第1页 / 共37页
第2页 / 共37页
第3页 / 共37页
第4页 / 共37页
第5页 / 共37页
第6页 / 共37页
第7页 / 共37页
第8页 / 共37页
第9页 / 共37页
第10页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
武汉天喻通讯技术有限公司 李文祥2012年6月初初 识识-2-第一部分 MongoDB简介-3-Whats Whats MongoDBMongoDB ? ?MongoDB is a scalable, high-performance, open source NoSQLNoSQL database. Written in C+-4-应用场景特性NoSQLNoSQL(Not Only (Not Only SqlSql) )水平可扩展开源分布式非关系型模式自由支持简易复制简单的API最终的一致性 (非ACID)大容量数据-5-常见的常见的 NoSQLNoSQLCassandraTairTair-6-WEBWEB应用为什么用应用为什么用 NoSQLNoSQL需求三高需求三高 High performance 对数据库高并发读写的需求 Huge Storage对海量数据的高效率存储和访问的需求 High Scalability );db.things.find(x:4, j:true).forEach(function(x) print(tojson(x););-17-MongoDBMongoDB的基本操作与的基本操作与SQLSQL语句对比语句对比SQLselect * from things where economy in tags order by ts DESC limit 10MongoDBdb.things.find(tags :economy).sort(ts:-1).limit(10);-18-基于基于Mongo_db|MoTools|MongoModelMongo_db|MoTools|MongoModel开发开发class Mongo_db MongoDB连接类 负责与MongoDB通信class MoTools MongoDB操作语法生成工具类 可以便捷的生成符合PHP MongoDB驱动语法的常用的查询更新语法class MongoModel 基于MongoDB的数据模型的基类 程序中的数据模型都继承自此类,此类中已定义了数据模型通用的方法, 如:getAll、getOne、delete、deleteAll、get_info|loadById、add|insert、batchInsert、 edit、geoNear、以及数据验证方法_valid、getRequiredFields、_dataEnough、-19-MongoModelMongoModel介绍介绍-20-MongoModelMongoModel介绍介绍 新增新增 add(array $data) 添加一条记录 insert(array $data)插入一条数据 see $this-add($data);batchInsert(array $data)批量插入数据 删除删除delete($where = array()deleteAll($where = array()-21-MongoModelMongoModel介绍介绍 更新更新 edit($id, array $data) 查询查询 get_info($id) loadById($id, $fields = array(),$excludes = array() getOne($select = array(),array $where = array() getAll($select = array(),array $where = array(),$order = array(),$count = 20, $offset = 0)/* * 获取文档列表 * param array|string $select 支持 name,age,address写法 * param array $where * param array|string $order 支持name desc,age asc写法 * param int $count * param int $offset * return array */ geoNear(array $location = array(), $distance=0, $num = 10, $query = array()-22-MongoModelMongoModel及及MoToolsMoTools应用应用-23-MongoModelMongoModel及及MoToolsMoTools应用应用-24-更多关于MONGODB的PHP驱动API在线手册:http:/cn2.php.net/manual/en/book.mongo.php-25-第三部分 MongoDB的高级应用-26-L L B B S S 的兴起的兴起-27-LBSLBS应用中基于位置的查询应用中基于位置的查询 在传统的解决方案,开发人员需要根据复杂的几何运算几何运算与大量 的SQL语句进行查找,这无疑加大的开发人员的开发难度,查询 性能也难以保证。 我们需要更为方便方便高效高效的解决方案 MongoDB为我们完美解决此类LBS问题-28-基于地理空间(基于地理空间( Geo spatial )索引的查询)索引的查询 基于经纬度的2D索引 基于平面的查询:$near、 $box、 $center、 $polygon 基于球面的查询:$nearSphere、$centerSphere v1.8v1.8+ +. . 手册:http:/www.mongodb.org/display/DOCS/Geospatial+Indexing-29-基于地理空间(基于地理空间( Geo spatial )索引的查询)索引的查询-30-基于地理空间(基于地理空间( Geo spatial )索引的查询)索引的查询使用场景:获取某一坐标点附近的标注物-31-第四部分 MongoDB的存储机制-32-MongoDBMongoDB使用的存储引擎使用的存储引擎 使用内存映射文件mmap实现,而32位机器受地址空间限制,所以单个实例最大数据空间仅为2.5G左右,64位机器基本 无限制(128T),故建议使用64位机器部署。 每个数据库由一个.ns元数据文件,以及多个数据文件组成(dbname.0,1,2,,以自增的数字为扩展名)。为了防止 小数据库浪费空间,MongoDB的数据文件默认从16M开始, 倍数级别增加,2G为单个数据文件的大小上限。-33-数据很少但数据很少但磁盘占用磁盘占用了上了上GG的空间?的空间? 存储空间预分配策略 16M32M64M128M256M512M1G2G2G-34-MMAPMMAP存储引擎原理详解存储引擎原理详解 MMAP: map a file on disk in memory-35- MMAPMMAP存储引擎原理详解存储引擎原理详解- 1G Kernel - 0.5G stack mongod 2.5G-36- MMAPMMAP存储引擎原理详解存储引擎原理详解目前AMD64处理器支持的寻址空间是40位, 也就是1TB,虚拟地址空间可达4848位位,也就是256TB0xF0 0xFF kernel 0x00 0x7F user-37-参考资料参考资料MongoDB 官网:http:/www.mongodb.org/PHP MongoDB驱动扩展手册:http:/cn2.php.net/manual/en/book.mongo.php10gen: http:/www.10gen.comMongoDB权威指南 中文版分布式文档数据库 http:/www.oschina.net/news/29715/mongodb-2-0-6
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号