MongoDB介绍──开发者专区(1)

来源:互联网 发布:淘宝抢红包入口 编辑:程序博客网 时间:2024/04/19 08:32

二.开发者专区

2.1  MongoDB简介

MongoDB是一种面向集合的,模式自由的文档数据库。

面向集合是说数据被分成集合的形式,每个集合在数据库中有惟一的名称,集合可以包含不限数目的文档。除了模式不是预先定义好的,集合与RDBMS中的表概念类似。数据库和集合的创建是“lazy”的,即只有在第一个document被插入时集合和数据库才真正创建──这时在磁盘的文件系统里才能看见。

模式自由是说数据库不需要知道存放在集合中的文档的结构,完全可以在同一个集合中存放不同结构的文档。

文档类似于RDBMS中的记录,以BSON的格式保存。BSONBinary JSON的简称,是对JSON-like文档的二进制编码序列化。像JSONJavaScript Object Notation)一样,BSON支持在对象和数组内嵌入其它的对象和数组。有些数据类型在JSON里不能表示,但可以在BSON里表示,如Date类型和BinData(二进制数据),Python原生的类型都可以表示。和Protocal Buffers[1]相比,BSON模式更自由,所以更灵活,但这样也使得每个文档都要保存字段名,所以空间压缩上不如Protocol Buffers

BSON第一眼看上去像BLOB,但MongoDB理解BSON的内部机制,所以MongoDB可以深入BSON对象的内部,即使是嵌套的对象,这样MongoDB就可以在顶层和嵌套的BSON对象上建立索引来应对各种查询了。

MongoDB可运行在LinuxWindowsOS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB为了提高性能使用了内存映射文件进行数据管理,而在32位模式运行时支持的最大文件为2GB

       MongoDB查询速度比MySQL快多了因为它cache了尽可能多的数据到RAM中,即使是non-cached数据也非常快。当前MongoDB官方支持的客户端API语言就多达8种(C|C++|Java|Javascript|Perl|PHP|Python|Ruby),社区开发的客户端API还有ErlangGoHaskell......

 

[1]Protocal Buffers是由Google开发的用以处理对索引服务器请求/应答的协议。

原创粉丝点击