Laravel 8 讀寫分離

2021-07-19 11:08 更新

有時(shí)候你希望 SELECT 語(yǔ)句使用一個(gè)數(shù)據(jù)庫(kù)連接,而 INSERT、UPDATE 和 DELETE 語(yǔ)句使用另一個(gè)數(shù)據(jù)庫(kù)連接。在 Laravel 中,無論你是使用原生查詢,查詢構(gòu)造器,還是 Eloquent ORM,都能輕松的實(shí)現(xiàn)。

為了弄明白讀寫分離是如何配置的,我們先來看個(gè)例子:

'mysql' => [
    'read' => [
        'host' => [
            '192.168.1.1',
            '196.168.1.2',
        ],
    ],
    'write' => [
        'host' => [
            '196.168.1.3',
        ],
    ],
    'sticky' => true,
    'driver' => 'mysql',
    'database' => 'database',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
], 

注意在以上的例子中,配置數(shù)組中增加了三個(gè)鍵,分別是 read、writestickyreadwrite 都包含一個(gè)鍵為 host 的數(shù)組。而 readwrite 的其他數(shù)據(jù)庫(kù)選項(xiàng)都在鍵為 mysql 的數(shù)組中。

如果你想重寫主數(shù)組中的配置,只需要修改 readwrite 數(shù)組即可。所以,這個(gè)例子中:192.168.1.1192.168.1.2 將作為 「讀」 連接主機(jī),而 192.168.1.3 將作為 「寫」 連接主機(jī)。這兩個(gè)連接會(huì)共享 mysql 數(shù)組的各項(xiàng)配置,如數(shù)據(jù)庫(kù)的憑證(用戶名 / 密碼),前綴,字符編碼等。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)