前言:说到应对大流量、高并发的解决方案的时候,总会有这样的回答,如:读写分离,主从复制...等,数据库层今天先不讨论,那么今天我们就来看看怎么在应用层实现读写分离。

框架:laravel5.7

说明:

Laravel默认将 select 的语句让 read 指定的数据库执行,insert/update/delete 则交给 write 指定的数据库,达到读写分离的作用。
这些设置对原始查询 raw queries,查询生成器 query builder,以及对象映射 Eloquent 都生效。

一、单读库配置(一主一从)

打开database.php文件,找到mysql配置处,完成效果如下图



二、多读库配置(一主多从)


.env文件


三、多写多读配置(多主多从)


.env文件


四、sticky 项

说明:sticky 项是一个可选的配置值,可用于在当前请求生命周期内允许立即读取写入数据库的记录。如果 sticky 选项被启用并且一个"写"操作在当前生命周期内发生,则后续所有"读"操作都会使用这个"写"连接(前提是同一个请求生命周期内),这样就可以确保同一个请求生命周期内写入的数据都可以立即被读取到,从而避免主从延迟导致的数据不一致,是否启用这一功能取决于你。

解释:当然,这只是一个针对分布式数据库系统中主从数据同步延迟的一个非常初级的解决方案,访问量不高的中小网站可以这么做,大流量高并发网站肯定不能这么干,主从读写分离本来就是为了解决单点性能问题,这样其实是把问题又引回去了,造成所有读写都集中到写数据库,对于高并发频繁写的场景下,后果可能是不堪设想的,但是话说回来,对于并发量不那么高,写操作不那么频繁的中小型站点来说,sticky 这种方式不失为一个初级的解决方案。

示意图(红框中)


来源:https://www.cnblogs.com/chenhaoyu/p/10775824.html

·END·

PHP开源社区进阶·提升·涨薪

mysql读写分离实现_laravel 配置MySQL读写分离相关推荐

  1. ubuntu mysql的穷_Ubuntu安装配置Mysql

    三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt/sourc ...

  2. mysql 加快命中_合理配置MySQL缓存 提高缓存命中率

    众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍.故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区域),来提高系统的运行效率.MySQL数据库也不例外.在这里,笔者 ...

  3. .net odbc连接mysql数据库,下载安装MySQL数据库ODBC驱动和配置MySQL ODBC数据源

    1. 下载MySQL ODBC驱动: 打开的页面如下图所示,可根据实际使用情况选择下载相应的MSI安装程序,使用Visual C++ 6.0环境编程请下载32位MSI安装程序. 点击下载后出现如下页面 ...

  4. mysql提高缓存_合理配置MySQL缓存 提高缓存命中率

    众所周知,系统读取数据时,从内存中读取要比从硬盘上速度要快好几百倍.故现在绝大部分应用系统,都会最大程度的使用缓存(内存中的一个存储区 域),来提高系统的运行效率.MySQL数据库也不例外.在这里,笔 ...

  5. php mysql 安装错误_Apache+php配置 Mysql安装出错解决办法

    此文包括的注意内容:软件版本及下载地址 Apache2.4的配置和安装 php7.0的配置 mysql5.5的安装 常见问题及解决方法 1.软件版本 Windows server 2008 r2+ 6 ...

  6. mysql查询显示柱形图_Grafana配置mysql展示自定义分组柱状图(Mac)

    安装Grafana 安装使用环境为MAC,使用工具安装: brew update brew install grafana 配置Grafana连接本地安装的mysql,mysql安装不做说明,配置文件 ...

  7. qt4.8 mysql 驱动_Qt-4.8.5配置mysql驱动

    一.安装mysql和Qt 安装mysql我们只需要他的include和lib文件夹即可 二.编译mysql驱动 打开qt目录D:\Qt\4.8.5\plugins\sqldrivers,里面包含了qt ...

  8. mysql双机数据热备份_配置MySQL数据库双机热备份

    1.mysql 数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 mysql 数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中.实现 mysql ...

  9. idea怎么和mysql连接并执行_IDEA配置mysql数据库的操作

    只需要添加Database即可 第一步:在界面最右边找到这个Database,找不到就在View中开启 第二步:选择Data Source,然后找到MySQL 第三步:按照如图所示连接 最上面为连接名 ...

最新文章

  1. 公开课报名 | 详解CNN-pFSMN模型以及在语音识别中的应用
  2. 定义c/c++全局变量/常量几种方法的区别
  3. 今天刚学的idea的debug打断点,Ctrl+u进入Evaluate Expression界面,调试程序事半功倍!
  4. linux下创建文件没有权限,分享一个Linux无法创建文件夹,但是目录权限却显示正常的问题和解决...
  5. 前端学习(2823):sitemap配置
  6. Linux下删除非空文件目录
  7. mysql怎么新增_mysql怎么新增用户
  8. java selenium (十二) 操作弹出窗口
  9. SPLUNK 安装配置及常用语法
  10. 【转】android内存溢出的解决方法
  11. ArcIMS9.2新增地图服务时check your map file's layers and data source connections解决
  12. 小说全自动采集详细过程-支持各大开源小说CMS采集
  13. lintcode 丢鸡蛋
  14. 机器视觉的四大类应用
  15. python中pandas库的作用_Python数据分析之Pandas库(笔记)
  16. PDB药物综合数据库必备8大类非付费网址80个
  17. Java常量池与方法区
  18. extern关键字的作用
  19. 【华为OD机试 2023最新 】 网上商城优惠活动(C++)
  20. 安装惠普打印机显示等待php,HP打印机安装过程中报错0x000006be的解决方法

热门文章

  1. Two Bases CodeForces - 602A (BigInteger c++long long也可以)
  2. python中数字的排序
  3. Visual Studio 常用快捷键(一)
  4. IOS程序之发送短信代码实现
  5. linux---編輯器
  6. 通过PO接口表导入PO数据
  7. 今天,很高兴!我成为了园子里的一份子!
  8. 在.NET中调用Oracle9i存储过程经验总结
  9. pandas的dataframe
  10. 2021大同高考成绩查询,大同高考分数查询(查询方法+入口)