代码拉取完成,页面将自动刷新
优化数据库连接,减少数据库连接次数及必连主库的限制,优化 实例化AR类、使用 Yii::app()->db->createCommand() 时连接数据库的操作
查询缓存方案,缓存sql中得SHOW语句,减少数据库查询次数
<?php
// 配置: protected/config/main.php
'components'=>array(
'db'=>array(
'class'=>'CDbConnectionExt_v3',
'connectionString' => 'mysql:host=127.0.0.1;dbname=dbname;',
'slaves'=>array(
array('connectionString'=>'mysql:host=127.0.0.1;dbname=dbname;charset=utf8;', 'username'=>'test', 'password'=>'test'),
),
'emulatePrepare' => true,
'waitSession' => 15,
'username' => 'test',
'password' => 'test',
'charset' => 'utf8',
),
'dbConnectionManager' => require(dirname(__FILE__).'/dbManager.php'),
)
/**
* 添加: protected/config/dbManager.php
* 参考 test/dbManager.php
*/
/**
* 示例: test/User.php
* 具体的model 使用gii工具生成,模版在 gii目录,
* sharded 分库分表 model 对应的模版
* sharded_normal 为普通model 模版
*/
?>
<?php
// 根据uid进行分库分表
$uid = 10;
$model = UserContact::model($uid); // 覆盖了原有参数,改为传人分库分表所依据的值
$data = $model->findAll();
$data = $model->dbConnection->createCommand()
->select("*")
->from($model->tableName())
->where('uid>1')
->limit(10)
->queryAll();
$db = Yii::app()->dbConnectionManager->sharded($uid); // 调用sharded方法 设置库和表
$data = $db->createCommand()
->select("*")
->from('user_contact_'.$db->shardedTableKey)
->where('uid>1')
->limit(10)
->queryAll();
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。