【小(xiǎo)編推薦】ThinkPHP3.2——分(fēn)布式數÷©(shù)據庫支持

2014-06-26   |&nbs★λ↓≈p;  發布者:梁國(gγ♠uó)芳   |  &nb∑​sp;查看(kàn):3320次

Thinkphp

ThinkPHP內(nèi)置了(le)分γ₽(fēn)布式數(shù)據庫的(de)支持,包括主從&↑(cóng)式數(shù)據庫的(de)讀(<↑dú)寫分(fēn)離(lí),但(dàn)是(shì)分∑Ω≠₹(fēn)布式數(shù)據庫必須是(shì)相&σ≠(xiàng)同的(de)數(shù)據庫類型。

配置DB_DEPLOY_TYPE 為(wèi)1 可(kě)以采用(yòng)分(fēn)布→π式數(shù)據庫支持。如(rú)果采用(yòng)分(fē$ n)布式數(shù)據庫,定義數(shù)據庫配置信息的(de)方β↕≥≥式如(rú)下(xià):

  1. //分(fēn)布式數(shù)據庫配置定義
  2. 'DB_DEPLOY_TYPE'=> 1, // 設置分(fēn)布式數(shù)據庫支持
  3. 'DB_TYPE' => 'mysql', //分(fēn)布式數(shù)據庫類型必須相φ₩(xiàng)同
  4. 'DB_HOST' => '192.168.0.1,192.168.0.2',
  5. 'DB_NAME' => 'thinkphp', //如(rú)果相(xiàng)同可(kě)以不(bù)用(yòng$  δ)定義多(duō)個(gè)
  6. 'DB_USER' => 'user1,user2',
  7. 'DB_PWD' => 'pwd1,pwd2',
  8. 'DB_PORT' => '3306',
  9. 'DB_PREFIX' => 'think_',

連接的(de)數(shù)據庫個(gè)數(shù)取決于±©Ω★DB_HOST定義的(de)數(shù)量,所以即使是(shì)兩δ​₩↔個(gè)相(xiàng)同的(de)IP也(yě)需要(yào)↑→重複定義,但(dàn)是(shì)其他(tā)的(de)參數(s♣€$☆hù)如(rú)果存在相(xiàng)同的(de)可(kě)以不(→≠bù)用(yòng)重複定義,例如(rú):

  1. 'DB_PORT'=>'3306,3306'

和(hé)

  1. 'DB_PORT'=>'3306'

等效。

  1. 'DB_USER'=>'user1',
  2. 'DB_PWD'=>'pwd1',

和(hé)

  1. 'DB_USER'=>'user1,user1',
  2. 'DB_PWD'=>'pwd1,pwd1',

等效。

還(hái)可(kě)以設置分(fēn)∑•€÷布式數(shù)據庫的(de)讀(dú)寫是(shì)≠δ否分(fēn)離(lí),默認的(de)情況下(xià)¶‌"€讀(dú)寫不(bù)分(fēn)離(lí),也(♠↓'§yě)就(jiù)是(shì)每台服務器(qì)都(dō¶£ γu)可(kě)以進行(xíng)讀(dú)寫操作(zuò),對'‍(duì)于主從(cóng)式數(shù)據庫而言,需要(yào)設置讀(£βdú)寫分(fēn)離(lí),通(tōng)過下÷ (xià)面的(de)設置就(jiù)可(kě)以:

  1. 'DB_RW_SEPARATE'=>true,

在讀(dú)寫分(fēn)離(lí)的(de)情況下(xià),默認™↕α第一(yī)個(gè)數(shù)據庫配置是(shì)主服務器(qì)®♠的(de)配置信息,負責寫入數(shù)÷π<♥據,如(rú)果設置了(le)DB_MASTER_NUM參數(shù),則可(kě)以支持多(duō)個(gè)主服務器(qì↕¶)寫入。其它的(de)都(dōu)是(shì)從(cóng)數(shù)據庫☆¥的(de)配置信息,負責讀(dú)取數(s£γhù)據,數(shù)量不(bù)限制(zhì)。每次連接從(cón×$<g)服務器(qì)并且進行(xíng)讀(dú)取操作(z©"Ω₹uò)的(de)時(shí)候,系統會(huì)随機(jī)進行(xíng)☆™在從(cóng)服務器(qì)中選擇。

還(hái)可(kě)以設置DB_SLAVE_NO 指定某個(gè)服務器(qì)進行(xíng)♠‌λ讀(dú)操作(zuò)。

調用(yòng)模型的(de)CURD操作(zuò)的(λ∞ de)話(huà),系統會(huì)自(zì)動判斷γπ£當前執行(xíng)的(de)方法的(de)讀(₽¶εdú)操作(zuò)還(hái)是(shì)寫操作(zuò),¶∑如(rú)果你(nǐ)用(yòng)的(de)是(shì)原生(shēng)ε♦♦✘SQL,那(nà)麽需要(yào)注意系統的(de)默認←Ω規則: 寫操作(zuò)必須用(yòng)模型的(de)execute方法,讀β'✔(dú)操作(zuò)必須用(yòng)模型的(de)qu ✘β ery方法,否則會(huì)發生(shēng)主從(β→©©cóng)讀(dú)寫錯(cuò)亂的(de)情況。

注意:主從(cóng)數(shù)據庫的(de)數(shù)據同λβ步工(gōng)作(zuò)不(bù)在框架實現(xiàn),需要(yào↔←λ)數(shù)據庫考慮自(zì)身(shēn)的(de)同步或者複 >✘♠制(zhì)機(jī)制(zhì)。