thinkphp 用mysqlmongodb 模型怎么使用

thinkphp 用mysqlmongodb 模型怎么使用,第1张

第一步:在你的应用的Model文件下建立一个MonModel

第二步:MonModel的内容如下

<?php

namespace Admin\Model

use Think\Model\MongoModel

Class MonModel extends MongoModel

{

public function __construct($name, $tablePrefix, $connection)

{

parent::__construct($name, $tablePrefix, $connection)

$this->trueTableName=$name//要连接的那个集合(表)控制器里传过来

}

protected $dbName='name'//(要连接的数据库名称)

protected $connection = array(

'db_type' => 'mongo',

'db_user' => 'admin',//用户名(没有留空)

'db_pwd' => 'admin',//密码(没有留空)

'db_host' => '127.0.0.1',//数据库地址

'db_port' => '27017',//数据库端口 默认27017

)

protected $_idType = self::TYPE_INT //参考手册

protected $_autoinc = true//参考手册

/* public function getall()

{

return $this->select()

}*/

}

第三步:你就可以在你的控制器里用这个MonModel去 *** 作mongodb了。

如下

<?php

namespace Admin\Controller

use Admin\Model\MonModel

use Common\Controller\YouKangController

class AuController extends YouKangController {

public function index()

{

$M= new MonModel('movie')//movie是集合名(表名)

diedump($M->select())

}

}

对比MySQL,什么场景MongoDB更适用

MySQL

关系型数据库。

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql的份额页在持续增长。

缺点就是在海量数据处理的时候效率会显著变慢。

Mongodb

非关系型数据库(nosql ),属于文档型数据库。先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。这些数据具备自述性(self-describing),呈现分层的树状数据结构。数据结构由键值(key=>value)对组成。

存储方式:虚拟内存+持久化。

查询语句:是独特的Mongodb的查询方式。

适合场景:事件的记录,内容管理或者博客平台等等。

架构特点:可以通过副本集,以及分片来实现高可用。

数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

优势:

快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快,

高扩展!

自身的Failover机制!

json的存储格式!

Mysql和Mongodb应用场景:

1.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量:

(1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类)

(2)从data models设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。

(3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

2.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8536648.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存