MONGODB的特性和PHP-MONGODB环境的搭建

 

MONGODB的特性和PHP-MONGODB环境的搭建

mongoDB是目前比较流行的非关系型数据库(no-sql),对于网上吹嘘的性能、吞吐、并发等大家可以自己来摸索和体会,这里不复述。

说说mongoDB一些开发级的特性吧:

1,mongo没有两表连查,相比mysql就没有 left join 或者 select … from a,b这样的操作了;

2,mongo不支持事务、存储过程等,所以用mongo做安全和稳定性高的应用不太现实;

3,mongo没有建表或者维护表结构的概念:

某个库在第一次写入操作时自动创建

某个表(mysql叫做table,mongo叫做collection)在第一次写入时自动创建

同一个collection中的每条记录的结构可以完全不同

mongoDB是有索引概念的,可以建立index和Unique类型的索引

mongoDB中collection的结构:

你不能把collection惯性的想象成一个二维表(table),因为它与sql数据库中的table有很多的不同。

mongo的collection你可以想象成一个笔记本,每一页就是一条记录,而每一页上所记录的东西就是一个节点可以完全不同的数组(array)。mongoDB在系统层面为每张collection的每条记录自动创建唯一索引——_id来检索和定位记录。

以下,我总结了collection的用法,抛砖引玉:

1,名片式:

用来存储不能完全定义出结构和节点的信息。

一张collection是一个笔记本,每一页记录一个人的名片,基本上来讲名片的结构可能是:姓名,公司名,网址,电话,Email。

有些人只会有“姓名”,“公司名”,其他的项目没有,这在mysql中也好实现,没有的项目就是null么,但是还有个可能性是,有些人要有“别 名”、“手机”、“QQ号码”等,这如果在mysql中来说,就要为这张表添加字段才可以,如果这些属性一再多下去,那就得分表连查了。而在mongo 中,只需要在insert或者update的时候为对应记录增加节点就可以了,也就是说可能A的那一页有“姓名”,“公司名”,而B的那一页可能是“姓 名”“公司名”“年龄”“QQ号”“出生地”…

这样一来,将同一类型的数据都放在了一个collection但有保持了每个个体内容的弹性。

2,菜单式:

这种方式比较适合存储配置性的信息。

请抬头看一下你目前浏览器的菜单:我用的是firefox浏览器,现在的菜单是:文件、编辑、查看、历史、书签、工具、帮助。

其中,“查看”的子菜单是:工具栏(含菜单栏、导航工具栏、书签工具栏…),状态栏,侧栏(含历史、书签)…

每个菜单项都还有自己的子项、子子项,但是他们之间又没有一致性。

我们可以用collection的每一条记录存储一个菜单项的全部内容,而我想操作“文件”的内容的时候,可以直接选择type为“文件”的记录来操作。

3,表格式:

这种方式和传统的mysql表很类似,用来存储完整性强,查询和排序条件较多的记录。

mongoDB的介绍

官方网站:http://www.mongodb.org/

官方开发者手册:http://www.mongodb.org/display/DOCS/Developer+Zone

官方管理员手册:http://www.mongodb.org/display/DOCS/Admin+Zone

官方中文手册:http://www.mongodb.org/display/DOCSCN/Home (不够及时)

什么是mongodb:http://baike.baidu.com/view/3385614.htm (百度百科)

mongoDB的安装(win)

下载想要安装的mongoDB的对应win版本:

http://www.mongodb.org/downloads

mongoDB在win下算是个绿色软件,不用一下一下的点Next,下载对应版本后:

1,将内容解压到你想要放置的对应目录,如:d:\mongodb\

2,建立一个目录,用来放数据,如d:\mongodata\

3,将mongoDB安装为windows服务:

cmd下   d:\mongodb\bin\mongod.exe –dbpath=d:\mongodata –install

之后你就可以在“服务”里面找到mongodb,关闭或者启动它。

可用mongod -help查看配置参数

官方说明书:http://www.mongodb.org/display/DOCS/Quickstart+Windows

让php支持mongoDB

php连接mongodb是个很简单的事情,官方文档在:http://www.mongodb.org/display/DOCS/PHP+Language+Center

1,下载对应的库文件

http://github.com/mongodb/mongo-php-driver/downloads 到这里选择适合你系统的dll文件(vc6是apache用户的,vc9是IIS用的)。

2,zip包中有个php_mongo.dll,放到你对应php的扩展目录,例如我的目录在D:\LAMP\php\ext

3,在你的php.ini中加入:extension=php_mongo.dll

4,重启apache,在phpinfo()中查看是否有一项关于mongo的~

如果出现关于mongo的清单,说明当前环境的php已经支持Mongodb了。如果没有,需要检查一下对应的php_mongo.dll是否与你当前的php版本对应,或者查看一下你的php扩展目录配置是否有效。

你可能感兴趣的:(职场,休闲)