## åå¸å¼æ¯æ
æ°æ®è®¿é®å±æ¯æåå¸å¼æ°æ®åºï¼å
æ¬è¯»åå离ï¼è¦å¯ç¨åå¸å¼æ°æ®åºï¼éè¦å¼å¯æ°æ®åºé
ç½®æ件ä¸ç`deploy`åæ°ï¼
~~~
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// å¯ç¨åå¸å¼æ°æ®åº
'deploy' => 1,
// æ°æ®åºç±»å
'type' => 'mysql',
// æå¡å¨å°å
'hostname' => '192.168.1.1,192.168.1.2',
// æ°æ®åºå
'database' => 'demo',
// æ°æ®åºç¨æ·å
'username' => 'root',
// æ°æ®åºå¯ç
'password' => '',
// æ°æ®åºè¿æ¥ç«¯å£
'hostport' => '',
],
],
];
~~~
>[info] å¯ç¨åå¸å¼æ°æ®åºåï¼`hostname`åæ°æ¯å
³é®ï¼`hostname`ç个æ°å³å®äºåå¸å¼æ°æ®åºçæ°éï¼é»è®¤æ
åµä¸ç¬¬ä¸ä¸ªå°åå°±æ¯ä¸»æå¡å¨ã
主ä»æå¡å¨æ¯æ设置ä¸åçè¿æ¥åæ°ï¼å
æ¬ï¼
|è¿æ¥åæ°|
|---|
|username|
|password|
|hostport|
|database|
|dsn|
|charset|
å¦æ主ä»æå¡å¨çä¸è¿°åæ°ä¸è´çè¯ï¼åªéè¦è®¾ç½®ä¸ä¸ªï¼å¯¹äºä¸åçåæ°ï¼å¯ä»¥åå«è®¾ç½®ï¼ä¾å¦ï¼
~~~
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// å¯ç¨åå¸å¼æ°æ®åº
'deploy' => 1,
// æ°æ®åºç±»å
'type' => 'mysql',
// æå¡å¨å°å
'hostname' => '192.168.1.1,192.168.1.2,192.168.1.3',
// æ°æ®åºå
'database' => 'demo',
// æ°æ®åºç¨æ·å
'username' => 'root,slave,slave',
// æ°æ®åºå¯ç
'password' => '123456',
// æ°æ®åºè¿æ¥ç«¯å£
'hostport' => '',
// æ°æ®åºå符é
'charset' => 'utf8',
],
],
];
~~~
>[danger] è®°ä½ï¼è¦ä¹ç¸åï¼è¦ä¹æ¯ä¸ªé½è¦è®¾ç½®ã
åå¸å¼çæ°æ®åºåæ°æ¯æ使ç¨æ°ç»å®ä¹ï¼é常为äºé¿å
å¤ä¸ªè´¦å·åå¯ç ç误解æï¼ï¼ä¾å¦ï¼
~~~
return [
'default' => 'mysql',
'connections' => [
'mysql' => [
// å¯ç¨åå¸å¼æ°æ®åº
'deploy' => 1,
// æ°æ®åºç±»å
'type' => 'mysql',
// æå¡å¨å°å
'hostname' =>[ '192.168.1.1','192.168.1.2','192.168.1.3'],
// æ°æ®åºå
'database' => 'demo',
// æ°æ®åºç¨æ·å
'username' => 'root,slave,slave',
// æ°æ®åºå¯ç
'password' => ['123456','abc,def','hello']
// æ°æ®åºè¿æ¥ç«¯å£
'hostport' => '',
// æ°æ®åºå符é
'charset' => 'utf8',
],
],
];
~~~
## 读åå离
è¿å¯ä»¥è®¾ç½®åå¸å¼æ°æ®åºç读åæ¯å¦å离ï¼é»è®¤çæ
åµä¸è¯»åä¸å离ï¼ä¹å°±æ¯æ¯å°æå¡å¨é½å¯ä»¥è¿è¡è¯»åæä½ï¼å¯¹äºä¸»ä»å¼æ°æ®åºèè¨ï¼éè¦è®¾ç½®è¯»åå离ï¼éè¿ä¸é¢ç设置就å¯ä»¥ï¼
~~~
'rw_separate' => true,
~~~
å¨è¯»åå离çæ
åµä¸ï¼é»è®¤ç¬¬ä¸ä¸ªæ°æ®åºé
ç½®æ¯ä¸»æå¡å¨çé
置信æ¯ï¼è´è´£åå
¥æ°æ®ï¼å¦æ设置äº`master_num`åæ°ï¼åå¯ä»¥æ¯æå¤ä¸ªä¸»æå¡å¨åå
¥ï¼æ¯æ¬¡éæºè¿æ¥å
¶ä¸ä¸ä¸ªä¸»æå¡å¨ï¼ãå
¶å®çå°åé½æ¯ä»æ°æ®åºï¼è´è´£è¯»åæ°æ®ï¼æ°éä¸éå¶ãæ¯æ¬¡è¿æ¥ä»æå¡å¨å¹¶ä¸è¿è¡è¯»åæä½çæ¶åï¼ç³»ç»ä¼éæºè¿è¡å¨ä»æå¡å¨ä¸éæ©ãåä¸ä¸ªæ°æ®åºè¿æ¥çæ¯æ¬¡è¯·æ±åªä¼è¿æ¥ä¸æ¬¡ä¸»æå¡å¨åä»æå¡å¨ï¼å¦ææ次请æ±çä»æå¡å¨è¿æ¥ä¸ä¸ï¼ä¼èªå¨åæ¢å°ä¸»æå¡å¨è¿è¡æ¥è¯¢æä½ã
å¦æä¸å¸æéæºè¯»åï¼æè
æç§æ
åµä¸å
¶å®ä»æå¡å¨ææ¶ä¸å¯ç¨ï¼è¿å¯ä»¥è®¾ç½®`slave_no` æå®åºå®æå¡å¨è¿è¡è¯»æä½ï¼`slave_no`æå®çåºå·è¡¨ç¤º`hostname`ä¸æ°æ®åºå°åçåºå·ï¼ä»`0`å¼å§ã
è°ç¨æ¥è¯¢ç±»æè
模åç`CURD`æä½çè¯ï¼ç³»ç»ä¼èªå¨å¤æå½åæ§è¡çæ¹æ³æ¯è¯»æä½è¿æ¯åæä½å¹¶èªå¨è¿æ¥ä¸»ä»æå¡å¨ï¼å¦æä½ ç¨çæ¯åçSQLï¼é£ä¹éè¦æ³¨æç³»ç»çé»è®¤è§åï¼ åæä½å¿
é¡»ç¨æ°æ®åºç`execute`æ¹æ³ï¼è¯»æä½å¿
é¡»ç¨æ°æ®åºç`query`æ¹æ³ï¼å¦åä¼åç主ä»è¯»åéä¹±çæ
åµã
åçä¸åæ
åµçè¯ï¼ä¼èªå¨è¿æ¥ä¸»æå¡å¨ï¼
* 使ç¨äºæ°æ®åºçåæä½æ¹æ³ï¼`execute`/`insert`/`update`/`delete`以åè¡çæ¹æ³ï¼ï¼
* å¦æè°ç¨äºæ°æ®åºäºå¡æ¹æ³çè¯ï¼ä¼èªå¨è¿æ¥ä¸»æå¡å¨ï¼
* ä»æå¡å¨è¿æ¥å¤±è´¥ï¼ä¼èªå¨è¿æ¥ä¸»æå¡å¨ï¼
* è°ç¨äºæ¥è¯¢æé å¨ç`lock`æ¹æ³ï¼
* è°ç¨äºæ¥è¯¢æé å¨ç`master`/`readMaster`æ¹æ³
>[danger] 主ä»æ°æ®åºçæ°æ®åæ¥å·¥ä½ä¸å¨æ¡æ¶å®ç°ï¼éè¦æ°æ®åºèèèªèº«çåæ¥æè
å¤å¶æºå¶ãå¦æå¨å¤§æ°æ®éæè
ç¹æ®çæ
åµä¸åå
¥æ°æ®åå¯è½ä¼åå¨åæ¥å»¶è¿çæ
åµï¼å¯ä»¥è°ç¨`master()`æ¹æ³è¿è¡ä¸»åºæ¥è¯¢æä½ã
>[info] å¨å®é
ç产ç¯å¢ä¸ï¼å¾å¤äºä¸»æºçæ°æ®åºåå¸å¼å®ç°æºå¶åæ¬å°å¼åä¼ææåºå«ï¼ä½é常ä¼éä¸é¢ç¨ä¸¤ç§æ¹å¼ï¼
>
> * 第ä¸ç§ï¼æä¾äºåIPå读IPï¼ä¸è¬æ¯èæIPï¼ï¼è¿è¡æ°æ®åºç读åå离æä½ï¼
> * 第äºç§ï¼å§ç»ä¿æåä¸ä¸ªIPè¿æ¥æ°æ®åºï¼å
é¨ä¼è¿è¡è¯»åå离IPè°åº¦ï¼é¿éäºå°±æ¯éç¨è¯¥æ¹å¼ï¼ã
## 主åºè¯»å
æäºæ
åµä¸ï¼éè¦ç´æ¥ä»ä¸»åºè¯»åæ°æ®ï¼ä¾å¦ååå
¥æ°æ®ä¹åï¼ä»åºæ°æ®è¿æ²¡æ¥å¾ååæ¥å®æï¼ä½ å¯ä»¥ä½¿ç¨
~~~
Db::name('user')
->where('id', 1)
->update(['name' => 'thinkphp']);
Db::name('user')
->master(true)
->find(1);
~~~
ä¸è¿ï¼å®é
æ
åµè¿æ¯è¿ä¸ªè¦å¤æï¼å ä¸ºä½ å¹¶ä¸æ¸
æ¥åç»çæ¹æ³éé¢æ¯å¦è¿åå¨ç¸å
³æ¥è¯¢æä½ï¼è¿ä¸ªæ¶åæ们å¯ä»¥é
ç½®å¼å¯æ°æ®åºç`read_master`é
ç½®åæ°ã
~~~
// å¼å¯èªå¨ä¸»åºè¯»å
'read_master' => true,
~~~
å¼å¯åï¼ä¸æ¦æ们对æ个æ°æ®è¡¨è¿è¡äºåæä½ï¼é£ä¹å½å请æ±çåç»ææ对该表çæ¥è¯¢é½ä¼ä½¿ç¨ä¸»åºè¯»åã
- åºè¨
- åºç¡
- å®è£
- å¼åè§è
- ç®å½ç»æ
- é ç½®
- æ¶æ
- 请æ±æµç¨
- æ¶ææ»è§
- å ¥å£æ件
- å¤åºç¨æ¨¡å¼
- URL访é®
- 容å¨åä¾èµæ³¨å ¥
- æå¡
- é¨é¢
- ä¸é´ä»¶
- äºä»¶
- è·¯ç±
- è·¯ç±å®ä¹
- åéè§å
- è·¯ç±å°å
- è·¯ç±åæ°
- è·¯ç±ä¸é´ä»¶
- è·¯ç±åç»
- èµæºè·¯ç±
- 注解路ç±
- è·¯ç±ç»å®
- ååè·¯ç±
- MISSè·¯ç±
- è·¨å请æ±
- URLçæ
- æ§å¶å¨
- æ§å¶å¨å®ä¹
- åºç¡æ§å¶å¨
- 空æ§å¶å¨
- èµæºæ§å¶å¨
- æ§å¶å¨ä¸é´ä»¶
- 请æ±
- 请æ±å¯¹è±¡
- 请æ±ä¿¡æ¯
- è¾å ¥åé
- 请æ±ç±»å
- HTTP头信æ¯
- 伪éæ
- åæ°ç»å®
- 请æ±ç¼å
- ååº
- ååºè¾åº
- ååºåæ°
- éå®å
- æ件ä¸è½½
- æ°æ®åº
- è¿æ¥æ°æ®åº
- åå¸å¼æ°æ®åº
- æ¥è¯¢æé å¨
- æ¥è¯¢æ°æ®
- æ·»å æ°æ®
- æ´æ°æ°æ®
- å é¤æ°æ®
- æ¥è¯¢è¡¨è¾¾å¼
- é¾å¼æä½
- where
- table
- alias
- field
- strict
- limit
- page
- order
- group
- having
- join
- union
- distinct
- lock
- cache
- comment
- fetchSql
- force
- partition
- failException
- sequence
- replace
- extra
- duplicate
- procedure
- èåæ¥è¯¢
- å页æ¥è¯¢
- æ¶é´æ¥è¯¢
- é«çº§æ¥è¯¢
- è§å¾æ¥è¯¢
- JSONå段
- åæ¥è¯¢
- åçæ¥è¯¢
- æ¥è¯¢äºä»¶
- è·åå¨
- äºå¡æä½
- åå¨è¿ç¨
- æ°æ®é
- æ°æ®åºé©±å¨
- 模å
- å®ä¹
- 模åå段
- æ°å¢
- æ´æ°
- å é¤
- æ¥è¯¢
- æ¥è¯¢èå´
- JSONå段
- è·åå¨
- ä¿®æ¹å¨
- æç´¢å¨
- æ°æ®é
- èªå¨æ¶é´æ³
- åªè¯»å段
- 软å é¤
- ç±»å转æ¢
- 模åè¾åº
- 模åäºä»¶
- 模åå ³è
- ä¸å¯¹ä¸å ³è
- ä¸å¯¹å¤å ³è
- è¿ç¨ä¸å¯¹å¤
- è¿ç¨ä¸å¯¹ä¸
- å¤å¯¹å¤å ³è
- å¤æå ³è
- å ³èé¢è½½å ¥
- å ³èç»è®¡
- å ³èè¾åº
- è§å¾
- 模æ¿åé
- è§å¾è¿æ»¤
- 模æ¿æ¸²æ
- 模æ¿å¼æ
- è§å¾é©±å¨
- é误åæ¥å¿
- å¼å¸¸å¤ç
- æ¥å¿å¤ç
- è°è¯
- è°è¯æ¨¡å¼
- Traceè°è¯
- SQLè°è¯
- åéè°è¯
- è¿ç¨è°è¯
- éªè¯
- éªè¯å¨
- éªè¯è§å
- é误信æ¯
- éªè¯åºæ¯
- è·¯ç±éªè¯
- å ç½®è§å
- 表å令ç
- 注解éªè¯
- æ项
- ç¼å
- Session
- Cookie
- å¤è¯è¨
- ä¸ä¼
- å½ä»¤è¡
- å¯å¨å ç½®æå¡å¨
- æ¥ççæ¬
- èªå¨çæåºç¨ç®å½
- å建类åºæ件
- æ¸ é¤ç¼åæ件
- çææ°æ®è¡¨å段ç¼å
- çæè·¯ç±æ å°ç¼å
- è¾åºè·¯ç±å®ä¹
- èªå®ä¹æ令
- æ©å±åº
- æ°æ®åºè¿ç§»å·¥å ·
- Workerman
- thinkå©æå·¥å ·åº
- éªè¯ç
- Swoole
- éå½
- å©æå½æ°
- å级æ导
- æ´æ°æ¥å¿