如何开启数据库读写分离状态 – 微擎教程

2017年4月21日微信开发评论761811字阅读6分2秒阅读模式

众所周知,随着一个网站的业务不断扩展,数据不断增加,数据库的压力也会越来越大,数据库操作往往会成为一个系统的瓶颈所在,对数据库的基本优化可能达不到最终的效果,而且一般系统的“读”压力远远大于“写”,因此我们可以通过实现数据库的读写分离来提高系统性能。读写分离现在被大量应用于很多大型网站,这个技术也不足为奇了。文章源自王小优-https://www.wangxiaoyou.com/4562.html

如何开启数据库读写分离状态 – 微擎教程文章源自王小优-https://www.wangxiaoyou.com/4562.html

数据库读写分离的优势在于正常的数据库都是查询较多,写入较少,比如我们平时浏览微信朋友圈和发朋友圈,浏览朋友圈(查询)较多,发朋友圈(写入)较少,当大量数据查询的时候,开启数据库读写分离,缓解数据库的压力。微擎系统默认是没有开启的,需要手动修改配置文件+两台云数据库进行开启,王小优教您如何开启数据库读写分离状态。文章源自王小优-https://www.wangxiaoyou.com/4562.html

实现思路

通过设置主从数据库实现读写分离,主数据库负责“写操作”,从数据库负责“读操作”,根据压力情况,从数据库可以部署多个提高“读”的速度,借此来提高系统总体的性能。文章源自王小优-https://www.wangxiaoyou.com/4562.html

后台位置

微擎后台→常用工具→性能优化→数据库读写分离工作状态。文章源自王小优-https://www.wangxiaoyou.com/4562.html

云数据库

仅支持阿里云、腾讯云等支持读写实例的云数据库。文章源自王小优-https://www.wangxiaoyou.com/4562.html

配置文件

在网站根目录/data/config.php设置的读写分离状态主要代码,包含微擎开启主从库的设置,注意主从库是2个数据库,不能同一个数据库。文章源自王小优-https://www.wangxiaoyou.com/4562.html

主库修改代码

主数据库的地址需要从数据库供应商获取,不可把普通的数据库用作主库,否则出现错误。文章源自王小优-https://www.wangxiaoyou.com/4562.html

网站根目录/data/config.php第6行至13行,代码如下:文章源自王小优-https://www.wangxiaoyou.com/4562.html

  1. $config['db']['master']['host'] = '127.0.0.1'; //主库地址
  2. $config['db']['master']['username'] = 'admin'; //用户名
  3. $config['db']['master']['password'] = '123456'; //密码
  4. $config['db']['master']['port'] = '3306'; //端口
  5. $config['db']['master']['database'] = 'w7'; 数据库名
  6. $config['db']['master']['charset'] = 'utf8';
  7. $config['db']['master']['pconnect'] = 0;
  8. $config['db']['master']['tablepre'] = 'ims_';

从库修改代码

从数据库的地址需要从数据库供应商获取,不可把普通的数据库用作从库,否则出现错误。文章源自王小优-https://www.wangxiaoyou.com/4562.html

网站根目录/data/config.php第15行至24行,代码如下:文章源自王小优-https://www.wangxiaoyou.com/4562.html

  1. $config['db']['slave_status'] = true; //从库,默认false
  2. $config['db']['slave']['1']['host'] = '127.0.0.2'; //从库地址
  3. $config['db']['slave']['1']['username'] = 'admin'; //账户
  4. $config['db']['slave']['1']['password'] = '234567'; //密码
  5. $config['db']['slave']['1']['port'] = '3307'; //端口
  6. $config['db']['slave']['1']['database'] = 'w8'; //数据库名
  7. $config['db']['slave']['1']['charset'] = 'utf8';
  8. $config['db']['slave']['1']['pconnect'] = 0;
  9. $config['db']['slave']['1']['tablepre'] = 'ims_';
  10. $config['db']['slave']['1']['weight'] = 0;
  11. $config['db']['common']['slave_except_table'] = array('core_sessions');

这样设置完以后,回到微擎后台刷新一下就可以看到已经显示数据库读写分离工作状态从未开启状态变为已开启状态了。文章源自王小优-https://www.wangxiaoyou.com/4562.html

如何开启数据库读写分离状态 – 微擎教程文章源自王小优-https://www.wangxiaoyou.com/4562.html

这样就设置完成了,注意2个地址一般是购买云库使用,主库写入权限,从库读取权限。用户缓解服务器的压力,不可随意搞个数据库就开启读写分离状态,这样是会出错的。文章源自王小优-https://www.wangxiaoyou.com/4562.html

相关阅读

如何开启MemCache性能优化 - 微擎教程文章源自王小优-https://www.wangxiaoyou.com/4562.html

如何开启Redis性能优化 - 微擎教程文章源自王小优-https://www.wangxiaoyou.com/4562.html

  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
王小优
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: