网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

分布式數據庫

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

配置database.deploy 為1 可以采用分布式數據庫支持。如果采用分布式數據庫,定義數據庫配置信息的方式如下:

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

連接的數據庫個數取決于hostname定義的數量,所以即使是兩個相同的IP也需要重復定義,但是其他的參數如果存在相同的可以不用重復定義,例如:

'hostport'=>'3306,3306'

'hostport'=>'3306'

等效。

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

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

等效。

還可以設置分布式數據庫的讀寫是否分離,默認的情況下讀寫不分離,也就是每臺服務器都可以進行讀寫操作,對于主從式數據庫而言,需要設置讀寫分離,通過下面的設置就可以:

    'rw_separate' => true,

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

還可以設置slave_no 指定某個服務器進行讀操作。

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

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

注意:主從數據庫的數據同步工作不在框架實現,需要數據庫考慮自身的同步或者復制機制。

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

文檔
目錄

深色
模式

切換
寬度