Yii 读写分离 分表分库
2015-08-05 13:47
671 查看
本文转自 http://hudeyong926.iteye.com/blog/1299989
实现一主一从,一主多从,多主多从的读写分离 。支持DAO,AR,其中Query builder只完成部分,需完善
调用
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
//AR
class User extends ActiveRecord
{
public $useDbName= 'passport';
//$this->dbWrite();
}
//$connection = $model->getDbConnection();
//DAO
$connection = Yii::app()->db->setDbName('passport');
$count = $connection->createCommand('SELECT COUNT(*) FROM film')->queryScalar();
$sql = 'SELECT film_id,title FROM film';
$dataProvider=new CSqlDataProvider($sql,array(
'db'=> $connection,
'totalItemCount'=>$count,
));
Yii::app()->db->getLastInsertID();
//Query Builder
$user = Yii::app()->db->setDbName('passport')->createCommand()
->select('id, username, profile')
->from('tbl_user u')
->join('tbl_profile p', 'u.id=p.user_id')
->where('id=:id', array(':id'=>$id))
->queryRow();
查看当前使用的主从库配置
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
Yii::app()->db->setDbName('passport');
//print_r(Yii::app()->getComponent('passport'));
分表AR
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
public function primaryKey()
{
return 'id';
}
private $tableName = "servicesmsremindrecord";
public function updateMeta($code)
{
$this->tableName = "service_sms_remind_record_".str_pad(($code%100), 2, '0', STR_PAD_LEFT);
$this->refreshMetaData();
return $this;
}
//TestUserDayHealth::model($code)->with('user')->findAll(); 循环放数组
实现一主一从,一主多从,多主多从的读写分离 。支持DAO,AR,其中Query builder只完成部分,需完善
调用
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
//AR
class User extends ActiveRecord
{
public $useDbName= 'passport';
//$this->dbWrite();
}
//$connection = $model->getDbConnection();
//DAO
$connection = Yii::app()->db->setDbName('passport');
$count = $connection->createCommand('SELECT COUNT(*) FROM film')->queryScalar();
$sql = 'SELECT film_id,title FROM film';
$dataProvider=new CSqlDataProvider($sql,array(
'db'=> $connection,
'totalItemCount'=>$count,
));
Yii::app()->db->getLastInsertID();
//Query Builder
$user = Yii::app()->db->setDbName('passport')->createCommand()
->select('id, username, profile')
->from('tbl_user u')
->join('tbl_profile p', 'u.id=p.user_id')
->where('id=:id', array(':id'=>$id))
->queryRow();
查看当前使用的主从库配置
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
Yii::app()->db->setDbName('passport');
//print_r(Yii::app()->getComponent('passport'));
分表AR
Java代码
![](http://hudeyong926.iteye.com/images/icon_star.png)
public function primaryKey()
{
return 'id';
}
private $tableName = "servicesmsremindrecord";
public function updateMeta($code)
{
$this->tableName = "service_sms_remind_record_".str_pad(($code%100), 2, '0', STR_PAD_LEFT);
$this->refreshMetaData();
return $this;
}
//TestUserDayHealth::model($code)->with('user')->findAll(); 循环放数组
相关文章推荐
- php学习笔记_函数类型
- PHP格式化导出EXCEL 【数值型字符串显示问题】
- php标准库spl之链表,堆栈,队列
- PHP实现合并discuz用户
- php xml操作
- php中防盗链使用.htaccess
- php 字符串截取函数
- FTP 上传 下载
- PHP iconv 解决utf-8和gb2312编码转换问题
- PHP 函数
- laravel 安装及入门
- 举例详解PHP脚本的测试方法
- 提高FTP传输速度小技巧
- FTP Client enterLocalPassiveMode
- 使用Thinkphp框架开发移动端接口
- php无限分类根据顶类获取所有子类
- YII 1.0 (7) 登录信息调取 session使用
- yii 常用一些调用
- SCTP协议的进一步理解
- DevExpress控件库----FlyoutPanel提示控件