自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)庫(kù)負(fù)載均衡功能優(yōu)化代碼

網(wǎng)絡(luò) 網(wǎng)絡(luò)優(yōu)化 網(wǎng)絡(luò)運(yùn)維
本文詳細(xì)介紹了負(fù)載均衡功能的域名服務(wù)器和數(shù)據(jù)庫(kù)優(yōu)化代碼的相關(guān)內(nèi)容,通過(guò)對(duì)連接配置文件,語(yǔ)句優(yōu)化代碼的介紹,相信大家能完善系統(tǒng)。

通過(guò)MySQL負(fù)載均衡功能的設(shè)置文章,相信大家已經(jīng)基本上對(duì)一些設(shè)置有所了解了,那么現(xiàn)在我們?cè)趯?duì)網(wǎng)絡(luò)域名服務(wù)器和數(shù)據(jù)庫(kù)優(yōu)化做一下詳細(xì)介紹。其中包括了相關(guān)內(nèi)容的代碼配置。

配置網(wǎng)絡(luò)DNS服務(wù)器

在BIND DNS服務(wù)器中,為三臺(tái)從屬服務(wù)器Slave配置同一個(gè)名字,客戶端的查詢檢索操作將由DNS服務(wù)器定向到其中的一臺(tái)Slave。因此,對(duì)于同一名字,不同的客戶端會(huì)定向到不同的地址,訪問(wèn)不同的MySQL服務(wù)器,從而達(dá)到負(fù)載均衡功能實(shí)現(xiàn)的目的。假設(shè)用戶為三臺(tái)Slave分配的DNS名字為mysqlslave.yourdomain,DNS服務(wù)器區(qū)域文件/var/named/yourdomain.zone中應(yīng)包含如下數(shù)據(jù)項(xiàng):

sqlmaster.yourdomain. IN A 192.168.1.100
sqlslave1.yourdomain. IN A 192.168.1.101
sqlslave2.yourdomain. IN A 192.168.1.102
sqlslave3.yourdomain. IN A 192.168.1.103
sqlslave IN CNAME sqlslave1
sqlslave IN CNAME sqlslave2
sqlslave IN CNAME sqlslave3

當(dāng)客戶端進(jìn)行查詢操作時(shí),提交給主機(jī)sqlslave.yourdomain的請(qǐng)求將由DNS服務(wù)器隨機(jī)定向到三臺(tái)Slave中的一臺(tái),由其執(zhí)行查詢作業(yè),返回結(jié)果。從而在三臺(tái)Slave之間實(shí)現(xiàn)查詢級(jí)別的負(fù)載均衡功能。

應(yīng)用系統(tǒng)程序代碼優(yōu)化

實(shí)際應(yīng)用中,對(duì)數(shù)據(jù)庫(kù)的寫入操作相對(duì)查詢操作少得多,因此,優(yōu)化應(yīng)用程序的數(shù)據(jù)庫(kù)連接代碼,把寫入操作定向到Master服務(wù)器,查詢操作定向到Slave服務(wù)器,提供主服務(wù)器和從屬服務(wù)器之間更新、查詢的負(fù)載均衡功能。本文以PHP數(shù)據(jù)庫(kù)連接代碼為例,簡(jiǎn)要介紹代碼優(yōu)化方法。

(1).準(zhǔn)備不同的數(shù)據(jù)庫(kù)連接配置文件

準(zhǔn)備兩個(gè)數(shù)據(jù)庫(kù)連接文件mysql_connect_master.php和mysql_connect_slave.php,其文件內(nèi)容如下:

mysql_connect_master.php文件的內(nèi)容:
// Connect to the Database Server
$linkID = @mysql_connect("sqlmaster.yourdomain", "user", "password") or die("Sorry, could not connect to the database!");
// Select the Database
@mysql_select_db("repl_db") or die("Sorry, Could not select database!");
?>

mysql_connect_slave.php文件的內(nèi)容:
// Connect to the Database Server
$linkID = @mysql_connect("sqlslave.yourdomain", "user", "password") or die("Sorry, could not connect to the database!");
// Select the Database
@mysql_select_db("repl_db") or die("Sorry, Could not select database!");
?>

(2).優(yōu)化程序SQL語(yǔ)句代碼

對(duì)應(yīng)用程序中訪問(wèn)數(shù)據(jù)庫(kù)的代碼段做出如下優(yōu)化:
 

  1. ...  
  2. // $sql is the query string to be committed to MySQL server.  
  3. if ( stripos( $sql, " SELECT" ) )  
  4. {  
  5. include_once("./mysql_connect_slave.php");  
  6. ...  
  7. mysql_close();  
  8. }  
  9. else 
  10. {  
  11. include_once("./mysql_connect_master.php");  
  12. ...  
  13. mysql_close();  
  14. }  
  15. ...  
  16. ?> 

說(shuō)明:每當(dāng)向MySQL服務(wù)器提交數(shù)據(jù)庫(kù)操作時(shí),加入一個(gè)if-else判斷語(yǔ)句對(duì)變量$sql進(jìn)行判斷定向,如果是SELECT查詢操作,將其定向到從屬服務(wù)器Slave中的一個(gè);如果是其它更新語(yǔ)句,則將其定向到主服務(wù)器Master。此處代碼段是應(yīng)用系統(tǒng)實(shí)現(xiàn)負(fù)載均衡的關(guān)鍵,用戶務(wù)必根據(jù)自己實(shí)際情況,寫出準(zhǔn)確無(wú)誤的代碼。每次對(duì)數(shù)據(jù)庫(kù)操作完畢都要及時(shí)釋放數(shù)據(jù)庫(kù)連接,以免更新、查詢操作分別定向失敗,影響系統(tǒng)負(fù)載均衡功能。這樣做雖然在一定程度上增加Web服務(wù)器或應(yīng)用服務(wù)器的開銷,但與MySQL服務(wù)器集群負(fù)載均衡功能帶來(lái)的大幅性能提升及冗余容錯(cuò)特性相比,這個(gè)開銷絕對(duì)是物超所值!

責(zé)任編輯:佟健 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-22 12:49:34

負(fù)載均衡功能配置

2010-05-07 13:09:06

2010-05-07 13:14:22

數(shù)據(jù)庫(kù)負(fù)載均衡

2012-10-19 10:21:07

數(shù)據(jù)庫(kù)負(fù)載均衡mssqlserver

2010-05-10 18:05:09

2010-04-21 17:16:15

2012-05-29 18:05:00

2010-04-21 16:57:18

數(shù)據(jù)庫(kù)負(fù)載均衡

2010-04-22 13:44:38

負(fù)載均衡功能

2010-05-17 14:00:07

MySql數(shù)據(jù)庫(kù)

2010-04-22 12:45:05

2010-05-04 15:37:26

CEF負(fù)載均衡

2010-04-20 14:31:29

負(fù)載均衡功能

2010-04-22 15:24:39

負(fù)載均衡功能

2010-05-10 17:38:57

網(wǎng)絡(luò)負(fù)載均衡功能

2010-04-22 12:25:24

MySQL負(fù)載均衡功能

2010-05-06 09:43:29

負(fù)載均衡功能

2010-04-21 12:28:50

Oracle負(fù)載均衡

2011-08-05 15:28:47

MySQL數(shù)據(jù)庫(kù)集群負(fù)載均衡

2011-08-22 12:01:36

SQL Server代碼優(yōu)化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)