WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機
ThinkPHP開發(fā)指南-模型之主從數(shù)據(jù)庫
來自站長百科
導(dǎo)航:上一頁
ThinkPHP的模型支持主從式數(shù)據(jù)庫的連接,配置DB_DEPLOY_TYPE 為1 可以采用分布式數(shù)據(jù)庫支持。如果采用分布式數(shù)據(jù)庫,定義數(shù)據(jù)庫配置信息的方式如下:
// 在項目配置文件里面定義
PHP代碼
return array( 'DB_TYPE'=> 'mysql', // 分布式數(shù)據(jù)庫的類型必須相同 'DB_HOST'=> '192.168.0.1,192.168.0.2', 'DB_NAME'=>'thinkphp', // 如果相同可以不用定義多個 'DB_USER'=>'user1,user2', 'DB_PWD'=>'pwd1,pwd2', 'DB_PORT'=>'3306', 'DB_PREFIX'=>'think_', …… 其它項目配置參數(shù) );
連接的數(shù)據(jù)庫個數(shù)取決于DB_HOST定義的數(shù)量,所以即使是兩個相同的IP也需要重復(fù)定義,但是其他的參數(shù)如果存在相同的可以不用重復(fù)定義,例如:
PHP代碼
'DB_PORT'=>'3306,3306' 和 'DB_PORT'=>'3306' 等效 'DB_USER'=>'user1', 'DB_PWD'=>'pwd1', 和 'DB_USER'=>'user1,user1', 'DB_PWD'=>'pwd1,pwd1',
等效。
還可以設(shè)置分布式數(shù)據(jù)庫的讀寫是否分離,默認(rèn)的情況下讀寫不分離,也就是每臺服務(wù)器都可以進行讀寫操作,對于主從式數(shù)據(jù)庫而言,需要設(shè)置讀寫分離,通過下面的設(shè)置就可以:
PHP代碼
'DB_RW_SEPARATE'=>true,
在讀寫分離的情況下,第一個數(shù)據(jù)庫配置是主服務(wù)器的配置信息,負(fù)責(zé)寫入數(shù)據(jù),其它的都是從數(shù)據(jù)庫的配置信息,負(fù)責(zé)讀取數(shù)據(jù),數(shù)量不限制。每次連接從服務(wù)器并且進行讀取操作的時候,系統(tǒng)會隨機進行在從服務(wù)器中選擇。
注意事項:主從數(shù)據(jù)庫的數(shù)據(jù)同步工作不在框架實現(xiàn),需要數(shù)據(jù)庫考慮自身的同步或者復(fù)制機制。