午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

分布式數據庫

ThinkPHP內置了分布式(shi)(shi)數據庫的(de)支持,包括主從式(shi)(shi)數據庫的(de)讀寫(xie)分離,但(dan)是分布式(shi)(shi)數據庫必須是相同的(de)數據庫類型。

配置database.deploy 為1 可(ke)以采(cai)用分(fen)布式數據庫支(zhi)持。如(ru)果采(cai)用分(fen)布式數據庫,定義(yi)數據庫配(pei)置信息的(de)方式如(ru)下:

//分布式數據庫配置定義return [// 啟用分布式數據庫'deploy'    =>  1,// 數據庫類型'type'        => 'mysql',// 服務器地址'hostname'    => '192.168.1.1,192.168.1.2',// 數據庫名'database'    => 'demo',// 數據庫用戶名'username'    => 'root',// 數據庫密碼'password'    => '',// 數據庫連接端口'hostport'    => '',
]

連接的數據庫個數取決于hostname定(ding)義的(de)數(shu)量,所(suo)以(yi)即(ji)使是兩個相(xiang)同的(de)IP也需要重復(fu)定(ding)義,但是其他的(de)參數(shu)如(ru)果存在相(xiang)同的(de)可以(yi)不(bu)用重復(fu)定(ding)義,例如(ru):

'hostport'=>'3306,3306'

'hostport'=>'3306'

等效。

'username'=>'user1', 
'password'=>'pwd1',

'username'=>'user1,user1', 
'password'=>'pwd1,pwd1',

等效。

還可(ke)以(yi)設(she)置分布(bu)式數據(ju)庫的(de)讀(du)寫(xie)是否分離(li)(li),默認的(de)情況下讀(du)寫(xie)不分離(li)(li),也就(jiu)(jiu)是每臺(tai)服務器都可(ke)以(yi)進行讀(du)寫(xie)操作,對于主從式數據(ju)庫而言,需要設(she)置讀(du)寫(xie)分離(li)(li),通過(guo)下面的(de)設(she)置就(jiu)(jiu)可(ke)以(yi):

    'rw_separate' => true,

在讀寫分離的情況下,默認第一個數據庫配置是主服務器的配置信息,負責寫入數據,如果設置了master_num參數(shu),則可以支持多個主服務器寫(xie)入。其它的都是(shi)從數(shu)據庫的配置信(xin)息,負責讀(du)取數(shu)據,數(shu)量不限制。每次連接從服務器并且進行讀(du)取操作的時候,系統(tong)會隨(sui)機進行在從服務器中(zhong)選擇。

還可以設置slave_no 指定某個服務器(qi)進(jin)行讀操作(zuo)。

如果從(cong)數據庫連接(jie)(jie)錯誤,會自動切換到主數據庫連接(jie)(jie)。

調用模型的CURD操作的話,系統會自動判斷當前執行的方法的讀操作還是寫操作,如果你用的是原生SQL,那么需要注意系統的默認規則: 寫操(cao)作必須用(yong)模(mo)型的execute方(fang)法,讀操(cao)作必須用(yong)模(mo)型的query方(fang)法,否則(ze)會發生主從讀(du)寫錯亂(luan)的情況。

注意(yi):主從數據庫(ku)的(de)數據同(tong)步工作不(bu)在框(kuang)架實現,需要(yao)數據庫(ku)考慮自身的(de)同(tong)步或者復(fu)制機制。

文檔最后更新時間:2022-05-31 09:22:06

文檔
目錄(lu)

深色
模(mo)式

切換
寬度