MySQL高效處理大量并發(fā)的數(shù)據(jù)庫(kù)連接方法
第一個(gè)問題,通過開放多個(gè)端口來實(shí)現(xiàn)
同一服務(wù)上開啟多個(gè)MySQL端口有兩種方式,一種是在編譯的時(shí)候指定特定端口,第二是修改配置文件來達(dá)到監(jiān)聽多個(gè)端口的目的。通過對(duì)MySQL_multi.conf修改可以實(shí)現(xiàn)第二種方式。MySQLd_multi可以管理多個(gè)幀聽不同Unix套接字文件和TCP/IP端口的連接的MySQLd 進(jìn)程。它可以啟動(dòng)或停止服務(wù)器,或報(bào)告它們的當(dāng)前狀態(tài)。程序?qū)ふ?/SPAN>my.cnf中的[MySQLdN]組(或--config-file選項(xiàng)指定的文件)。N 可以為任何正整數(shù)。
宇塵網(wǎng)絡(luò)幫助中心——域名知識(shí)|虛擬主機(jī)知識(shí)|VPS主機(jī)知識(shí)|服務(wù)器知識(shí)|網(wǎng)站建設(shè)知識(shí)|網(wǎng)絡(luò)推廣
同時(shí),在my.cnf配置文件中對(duì)以下各參數(shù)進(jìn)行適當(dāng)?shù)脑O(shè)置。首先是與網(wǎng)絡(luò)連接的性能配置項(xiàng)。
Max_connections:整個(gè)MySQL允許的最大連接數(shù)。
如果客戶的連接請(qǐng)求數(shù)超過max_connections,就會(huì)產(chǎn)生大量連接請(qǐng)求的等待,所以應(yīng)該在主機(jī)性能允許的情況下,將該參數(shù)設(shè)置的盡可能大一些。
Max_user_connections:每個(gè)用戶允許的最大連接數(shù)。
Net_buffer_length:網(wǎng)絡(luò)包傳輸中,傳輸消息之前的net buffer初始化大小。
Max_allowed_packet:在網(wǎng)絡(luò)傳輸中,一次消息傳輸量的最大值
Back_log:在MySQL的連接請(qǐng)求等待隊(duì)列中允許存放的最大連接請(qǐng)求數(shù)。
美國(guó)月付空間、月付美國(guó)空間、美國(guó)VPS、美國(guó)服務(wù)器租用
再次是與連接線程相關(guān)的系統(tǒng)參數(shù)及狀態(tài)變量
Thread_cache_size:Thread Cache池中應(yīng)該存放的連接線程數(shù)。
Thread_stack:每個(gè)連接線程被創(chuàng)建時(shí),MySQL給它分配的內(nèi)存大小。
仿牌空間、香港月付空間、韓國(guó)月付空間、日本月付空間、荷蘭VPS、香港VPS
第二個(gè)問題,主要通過以下幾個(gè)方面來處理
第一, 適當(dāng)分庫(kù)。根據(jù)業(yè)務(wù)劃分多個(gè)數(shù)據(jù)庫(kù),即database。通過SQL命令 show databases可以顯示所有的數(shù)據(jù)庫(kù)。這樣可以將數(shù)據(jù)資源的訪問進(jìn)行有效地均衡,使得在各個(gè)業(yè)務(wù)數(shù)據(jù)的訪問之間減少干擾,這樣通過訪問字符串進(jìn)行數(shù)據(jù)庫(kù)連接的時(shí)候也可以更為有效的利用MySQL的多線程機(jī)制。而且,通過這樣的處理,也有效減少了對(duì)同一部分?jǐn)?shù)據(jù)的訪問。
第二,對(duì)MySQL進(jìn)行Query Cache優(yōu)化。
更多技術(shù)知識(shí),更多網(wǎng)絡(luò)服務(wù),盡在宇塵網(wǎng)絡(luò)。我們的成長(zhǎng),離不開你們的支持,宇塵網(wǎng)絡(luò),歡迎您的訪問。