當資料庫讀操作比較多的情況下,建議做讀寫分離
一:如果你是自建方式:
使用mysql-proxy、atlas等,主要實現讀寫操作的分離以及讀權重調整
安裝過程略,直接上配置(以atlas為例)
[mysql-proxy]
#帶#號的為非必需的配置專案
#管理介面的使用者名稱
admin-username=***
#管理介面的密碼
admin-password=***
#atlas後端連線的mysql主庫的ip和埠,可設定多項,用逗號分隔
proxy-backend-addresses=***:3306
#atlas後端連線的mysql從庫的ip和埠,@後面的數字代表權重,用來作負載均衡,若省略則預設為1,可設定多項,用逗號分隔
proxy-read-only-backend-addresses=***:3306@1,***xx:3306@2
#使用者名稱與其對應的加密過的mysql密碼,密碼使用prefix/bin目錄下的加密程式encrypt加密,下行的user1和user2為示例,將其替換為你的mysql的使用者名稱和加密密碼!
pwds=庫名1:加密密碼,庫名2:加密密碼2
#設定atlas的執行方式,設為true時為守護程序方式,設為false時為前台方式,一般開發除錯時設為false,線上執行時設為true,true後面不能有空格。
daemon=true
#設定atlas的執行方式,設為true時atlas會啟動兩個程序,乙個為monitor,乙個為worker,monitor在worker意外退出後會自動將其重啟,設為false時只有worker,沒有monitor,一般開發除錯時設為false,線上執行時設為true,true後面不能有空格。
keepalive=false
#工作執行緒數,對atlas的效能有很大影響,可根據情況適當設定
event-threads=8
#日誌級別,分為message、warning、critical、error、debug五個級別
log-level=message
#日誌存放的路徑
log-path=/usr/local/mysql-proxy/log
#sql日誌的開關,可設定為off、on、realtime,off代表不記錄sql日誌,on代表記錄sql日誌,realtime代表記錄sql日誌且實時寫入磁碟,預設為off
sql-log= on
#慢日誌輸出設定。當設定了該引數時,則日誌只輸出執行時間超過sql-log-slow(單位:ms)的日誌記錄。不設定該引數則輸出全部日誌。
sql-log-slow=1000
#例項名稱,用於同一臺機器上多個atlas例項間的區分
instance=***
#atlas監聽的工作介面ip和埠
proxy-address=0.0.0.0:3306
#atlas監聽的管理介面ip和埠
admin-address=0.0.0.0:2345
#分表設定,此例中person為庫名,mt為表名,id為分表字段,3為子表數量,可設定多項,以逗號分隔,若不分表則不需要設定該項
#tables = person.mt.id.3
#預設字符集,設定該項後客戶端不再需要執行set names語句
charset=utf8
#關閉不活躍的客戶端連線設定。當設定了該引數時,atlas會主動關閉經過'wait-timeout'時間後一直未活躍的連線。單位:秒
wait-timeout=10
#允許連線atlas的客戶端的ip,可以是精確ip,也可以是ip段,以逗號分隔,若不設定該項則允許所有ip連線,否則只允許列表中的ip連線
#client-ips = 127.0.0.1, 192.168.1
#atlas前面掛接的lvs的物理網絡卡的ip(注意不是虛ip),若有lvs且設定了client-ips則此項必須設定,否則可以不設定
#lvs-ips = 192.168.1.1
#client-ips=
----------------------------------------------完畢!--------------------------------------------
這裡有個坑:配置檔案命名的時候不要使用相同的字首,例如:admin.cnf 和 admin***.cnf 當你重啟admin.cnf的時候 另外乙個也會重啟,這是因為在 bin/
mysql-proxyd配置指令碼問題,你也可以修改指令碼避免這種問題
pwds= 這裡加密密碼不是資料庫的原始密碼!!!
二:雲平台下使用讀寫分離:
例如阿里雲下可以直接開通使用,開通後可以在資料庫連線下調整讀權重,請參考:
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share p...
資料庫讀寫分離
隨著乙個 的業務不斷擴充套件,資料不斷增加,資料庫的壓力也會越來越大,對資料庫或者sql的基本優化可能達不到最終的效果,我們可以採用讀寫分離的策 略來改變現狀。讀寫分離現在被大量應用於很多大型 這個技術也不足為奇了。ebay就做得非常好。ebay用的是oracle,聽說是用 quest share ...