ts7758258 发表于 2018-10-28 08:14:24

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扩展目录配置是否有效。

页: [1]
查看完整版本: MONGODB的特性和PHP-MONGODB环境的搭建