yii2的数据库读写分离配置
简介
数据库读写分离是在网站遇到性能瓶颈的时候最先考虑优化的步骤,那么yii2是如何做数据库读写分离的呢?本节教程来给大家普及一下yii2的数据库读写分离配置。
两个服务器的数据同步是读写分离的前提条件,但这不在yii2读写分离教程内,yii2的数据库读写分离配置,仅仅实现了在主库读写,在从库查询,那么我们首先要配置主从服务器的数据同步。详情查看linux数据库主从同步配置
配置
主从服务器数据库同步完成之后,我们就可以开始yii2的读写分离配置,官方也有这方面的文档,但说的并不清楚,也没有实际的例子,酱油君在这里加以完善。
1.打开我们的数据库配置文件common\config\main-local.php在db属性中做如下配置
'db' => [
'class' => 'yii\db\Connection', // 配置主服务器
'dsn' => 'mysql:host=192.168.0.1;dbname=hyii2',
'username' => 'root',
'password' => 'root',
'charset' => 'utf8', // 配置从服务器
'slaveConfig' => [
'username' => 'root',
'password' => 'root',
'attributes' => [
// use a smaller connection timeout
PDO::ATTR_TIMEOUT => 10,
],
'charset' => 'utf8',
], // 配置从服务器组
'slaves' => [
['dsn' => 'mysql:host=192.168.0.2;dbname=hyii2'],
],
],
如上配置就能实现yii2数据库读写分离的操作,很简单,只要一个配置就ok了,读写分离的功能由后台代码自动完成.调用者无须关心。
上面只是一个1主1从的配置,如果要一主多从,或者多主多从,参考此例以及官方文档即可完成。
來源:http://www.yii-china.com/doc/yii2-windows.html?id=284
yii2的数据库读写分离配置的更多相关文章
- Mysql数据库读写分离配置
环境模拟 实现读写分离 减轻数据库的负荷 主服务器 master 10.0.0.12 从服务器 slave 10.0.0.66 配置主服务器: 在10.0.0.12服务器操作 创建数据 ...
- (转)Mysql数据库读写分离配置
环境模拟 实现读写分离 减轻数据库的负荷 主服务器 master 10.0.0.12从服务器 slave 10.0.0.66 ------------------------------------- ...
- laravel实现数据库读写分离配置或者多读写分离配置
config\database.php里 读写分离:'mysql' => array( 'read' => array( 'host' => '192.168.1.1', ), 'w ...
- 学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- 学会数据库读写分离、分表分库——用Mycat
系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理本身优化也是非常重要的.主从.热备.分表分库等都是系统发展迟早会遇到的技术问题问题.Mycat是一 ...
- MySQL+Amoeba实现数据库读写分离
参考:https://www.cnblogs.com/liuyisai/p/6009379.html 一,Amoeba是什么 Amoeba(变形虫)项目,专注 分布式数据库 proxy 开发.座落与C ...
- (转)学会数据库读写分离、分表分库——用Mycat,这一篇就够了!
原文:https://www.cnblogs.com/joylee/p/7513038.html 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据库的处理 ...
- 数据库读写分离、分表分库——用Mycat
转: https://www.cnblogs.com/joylee/p/7513038.html 系统开发中,数据库是非常重要的一个点.除了程序的本身的优化,如:SQL语句优化.代码优化,数据 ...
- EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一
回到目录 本讲是通过DbCommand拦截器来实现读写分离的最后一讲,对之前几篇文章做了一个优化,无论是程序可读性还是实用性上都有一个提升,在配置信息这块,去除了字符串方式的拼接,取而代之的是sect ...
随机推荐
- Redis设计与实现:读书笔记之二
1.数据库 Redis服务器一般包含多个db,默认16个. 切换数据库 每个redis客户端都有自己的目标数据库,默认为0,可以通过select 1,切换数据库. 设置键的生存周期和过期时间 PTTL ...
- java基础知识总结--对象的克隆
前提:在Java语言中所有的类的都是缺省的继承Java语言中的Object类的, protected native Object clone() throws CloneNotSupportedExc ...
- JDBC接口
Jmeter实例8:JDBC接口 加线程组.加JDBC配置信息: 配置信息详情如下:默认展示值不用修改 必填信息: Database UR:固定格式,将IP.端口号.数据库名修改成自己要用的数据库信息 ...
- sencha touch 学习汇总(转)
1.官方网站:http://www.sencha.com/products/touch/ 2.在线文档:http://docs.sencha.com/touch/2.2.1/ 3.在线翻译文档:htt ...
- macOS Sierra WiFi connecting problem
吐槽一下,苹果的质量管控越来越差了. macOS Sierra有时突然或升级后会遇到wifi不停重连连不上问题,现象为不停地连接wifi. 网上有人说删除 /Library/Preferences/S ...
- Hibernate(3)配置文件hibernate.cfg.xml
5.配置文件 Hibernate 配置文件主要用于配置数据库连接和 Hibernate 运行时所需的各种属性,每个 Hibernate 配置文件对应一个 Configuration 对象 Hibern ...
- Error: Invalid or corrupt jarfile
使用IDEA通过MAVEN创建quickstart项目后,添加了Artifacts,发现生成的jar包无法run,出现下面的错误: Error: Invalid or corrupt jarfile ...
- 关于Mysql表InnoDB下插入速度慢的解决方案
最近做了 server_log 日志数据库记录,仅仅插入,由平台来获取数据进行分析的需求. 但是内部反馈插入数据库记录非常耗时,我就很纳闷了,一个insert怎么会 30-50ms 呢?按说应该在 0 ...
- ViewPager Fragment 懒加载 可见 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Spark(四十五):Schema Registry
很多时候在流数据处理时,我们会将avro格式的数据写入到kafka的topic,但是avro写入到kafka的时候,数据有可能会与版本升级,也就是schema发生变化,此时如果消费端,不知道哪些数据的 ...