1. 程式人生 > >使用Yii2實現讀寫分離(MySQL主從資料庫)

使用Yii2實現讀寫分離(MySQL主從資料庫)

讀寫分離(Read/Write Splitting)。

簡介
資料庫讀寫分離是在網站遇到效能瓶頸的時候最先考慮優化的步驟,那麼yii2是如何做資料庫讀寫分離的呢?本節教程來給大家普及一下yii2的資料庫讀寫分離配置。
兩個伺服器的資料同步是讀寫分離的前提條件,但這不在yii2讀寫分離教程內,yii2的資料庫讀寫分離配置,僅僅實現了在主庫讀寫,在從庫查詢,那麼我們首先要配置主從伺服器的資料同步。詳情檢視linux資料庫主從同步配置
配置
主從伺服器資料庫同步完成之後,我們就可以開始yii2的讀寫分離配置,官方也有這方面的文件,但說的並不清楚,也沒有實際的例子,醬油君在這裡加以完善。

1.原理:讓主資料庫(master)處理事務性增、改、刪操作(INSERT、UPDATE、DELETE),而從資料庫(slave)處理SELECT查詢操作。
2.好處:備份資料庫,分擔資料庫壓力,承受更大的訪問量。

yii實現讀寫分離非常簡單,只需要在配置檔案中寫幾個配置引數即可實現。
1.配置db.php檔案
這裡寫圖片描述
2.建立兩個資料庫為了演示ip都指向本地的MySQL資料庫,但是資料庫名稱不同,同時在資料庫分別插入一條資料,將slave資料庫的username改成slave。
這裡寫圖片描述
3.檢視查詢結果
查詢主鍵id為1的那條資料
這裡寫圖片描述
以下是查詢結果
這裡寫圖片描述

相關推薦

使用Yii2實現分離MySQL主從資料庫

讀寫分離(Read/Write Splitting)。 簡介 資料庫讀寫分離是在網站遇到效能瓶頸的時候最先考慮優化的步驟,那麼yii2是如何做資料庫讀寫分離的呢?本節教程來給大家普及一下yii2的資料庫讀寫分離配置。 兩個伺服器的資料同步是讀

使用spring實現分離mysql主從複製五:一主多從的實現

很多實際使用場景下都是採用“一主多從”的架構的,使用輪詢演算法實現,目前只需要修改DynamicDataSource即可。   1.1. 實現 import java.lang.reflect.Field; import java.util.ArrayList; impo

使用Spring實現分離 MySQL實現主從復制

sign eve replicat win [] 做了 用戶名 指定 ati 1. 背景 我們一般應用對數據庫而言都是“讀多寫少”,也就說對數據庫讀取數據的壓力比較大,有一個思路就是說采用數據庫集群的方案, 其中一個是主庫,負責寫入數據,我們稱之為:寫庫; 其它都是從庫,

使用Spring實現分離 MySQL實現主從複製

1.  背景 我們一般應用對資料庫而言都是“讀多寫少”,也就說對資料庫讀取資料的壓力比較大,有一個思路就是說採用資料庫叢集的方案, 其中一個是主庫,負責寫入資料,我們稱之為:寫庫; 其它都是從庫,負責讀取資料,我們稱之為:讀庫; 那麼,對我們的要求是: 1、讀庫和寫庫的資

Spring AOP 實現分離MySQL實現主從複製

1、Mysql的主從複製      1.1 mysql主(稱master)從(稱slave)複製的原理 1、master將資料改變記錄到二進位制日誌(binarylog)中,也即是配置檔案log-bin指定的檔案(這些記錄叫做二進位制日誌事件,binary log eve

CentOS7,MySQL主從配置和分離MySQL主從分離、分散式、資料庫分離主從配置

一、實驗目標搭建兩臺MySQL伺服器,一臺作為主伺服器,一臺作為從伺服器,主伺服器進行寫操作,從伺服器進行讀操作。二、測試環境主資料庫: CentOS7, MySQL15.1 , 192.168.1.233從資料庫: CentOS7, MySQL15.1 , 192.168.

SpringBoot進行MySql動態資料來源配置實現分離連線池Druid

1.簡介 前面使用C3P0連線池進行過資料庫的讀寫分離的實驗,今天換一下資料庫連線池改造一下,原理還是和原來的一樣。 Druid是阿里出品,淘寶和支付寶專用資料庫連線池,但它不僅僅是一個數據庫連線池,它還包含一個ProxyDriver,一系列內建的JDBC元

Mycat實現 分庫分表+分離基於主從配置

前兩篇文章分別講解了分庫分表 和主從配置下面來介紹 分庫分表+讀寫分離(基於主從配置)簡單的架構圖:配置:cd進入到mycat的conf目錄下 檢視 server.xml  rule.xml  schema.xml 三個配置檔案server.xml   與之前的配置基本沒有變

使用Spring+MySql實現分離spring整合多數據庫

ont 依據 xml配置 實現 整合 配置 item 匹配 mic 緊接著上一章,因為現在做的項目還是以spring為主要的容器管理框架,所以寫以下spring如何整合多個數據源。 1. 背景 我們一般應用對數據庫而言都是“讀多寫少”,也就說對數據庫讀取數據的壓力比較大

mysql主從復制及分離附安裝包

download inux libaio script 關閉防火墻 安裝包 useradd tor 數據 實驗目的:在實際生產環境中,如果對數據庫的讀和寫都在同一個數據庫服務器中操作,無論在安全性、高可用性,還是高並發等各個方面都是完全不能滿足實際需求的,因此,一般需要通過

Linux 使用Mycat實現分離基於Mysql分離

各位同學大家好,今天給大家分享一下用Mycat進行資料庫的讀寫分離,本篇文章是基於上一篇的mysql主從複製。Linux上實現Mysql的主從複製(為Mycat讀寫分離作準備) 在上一篇文章中,我們在兩個伺服器使用同版本的作業系統和mysql: 伺服器1:centos7.3,mysql5.6 伺服器

Mycat實現分離

mycatMycat介紹Mycat是一個國產中間件產品,作用在應用層和數據庫之間架橋,使應用通過MyCat來對後端數據庫進行管理,是一款國人自主的開源的中間件產品。算是比較優秀的一款,前身是阿裏公司在維護,很多公司也慢慢的在嘗試接入這個產品,但不得不說官方文檔似乎做的不太友好。至於為什麽選擇MyCat可能只有

Spring Boot2.0.3 Mybatis Sharding-jdbc3.X整合實現資料庫分離MySql主從配置

Mysql的安裝 這個網上一大堆的教程,我這裡安裝的mysql5.7。這裡就不細說了,直接貼相應的命令 wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm yum locali

Mysql主從配置,實現分離

windows安裝 建議 xid 分布式 唯一標識 -1 在線下載 命令 進行 大型網站為了軟解大量的並發訪問,除了在網站實現分布式負載均衡,遠遠不夠。到了數據業務層、數據訪問層,如果還是傳統的數據結構,或者只是單單靠一臺服務器扛,如此多的數據庫連接操作,數據庫必然會崩潰,

MySQL主從復制 + Mycat實現分離

date windows repl ron 信息 決定 不用 ati 刪掉 說明:兩臺MySQL服務器都是使用CentOS6.5系統,MySQL版本為mysql-5.7.17 MySQL一主一被實現主從復制 註意:寫包括insert,delete,update 操作;讀只有

MMM架構實現MySQL高可用分離進階版,包含Amoeba

meid _id status mysqld 服務無法啟動 flush 忽略 kit pri 前兩天逛博客偶然發現了某大神寫的關於MMM的文章,看完就迫不及待的自己試了一下,大神寫的很順暢,以為自己也能操作的很順暢,但是實際情況是手腳太不麻利,碰到很多坑,如果大神的

mysql-配置主從數據庫,實現分離

參考 image 增加 mysql- pan 位置 span 主從同步 原則 主從分離的原則:所有的寫操作在主數據庫中進行,因為主從分離的原理是涉及到同步數據,那就可能會出現延遲或者其他問題,就可能會出現臟數據。 所以,在從庫中進行的讀操作也必須是有一定容忍性的數據,例如日

MySQL 之 MHA + ProxySQL + keepalived 實現分離,高可用

don replica ifconfig soft 似的 恢復 select 8.0 ext 準備服務器: docker network create --subnet=192.168.0.0/16 staticnetdocker run -d --privileg

MySQL 之 MHA + ProxySQL + keepalived 實現分離,高可用

ProxySQL安裝 yum/rpm安裝 在github或官網上可以下載rpm包,wiki的Getting start章節有詳細介紹。 cat <<EOF | tee /etc/yum.repos.d/proxysql.repo [proxysql_repo] name= ProxyS

使用 Spring Aop 與 Mysql主從複製功能實現分離

使用 Spring Aop 與 Mysql 的主從複製功能實現讀寫分離。讀寫分離:將應用程式中對資料庫的寫的操作是一個數據庫;對資料庫讀取資料的是另外一個數據庫。而兩個資料庫的資料需要保證一致。 在應用程式中,可以使用 spring aop 對將要執行的業務方法的特徵進行判斷,如:包含 query、find