游戲服務(wù)器托管MySQL性能的提高方法
發(fā)布時(shí)間:2019-08-02 點(diǎn)擊數(shù):319
游戲服務(wù)器托管MySQL的性能非常重要,服務(wù)器托管用戶(hù)一般也都非常注重MySQL的性能優(yōu)化,接下來(lái)小編就給大家分享下游戲服務(wù)器托管MySQL性能的提高方法。
短連接
短連接模型存在一個(gè)風(fēng)險(xiǎn),就是一旦數(shù)據(jù)庫(kù)處理的慢一些,連接數(shù)就會(huì)暴漲。max_connections參數(shù),用來(lái)控制一個(gè)MYSQL實(shí)例同時(shí)存在的連接數(shù)的上限,超過(guò)這個(gè)值,系統(tǒng)就會(huì)拒絕接下來(lái)的來(lái)連接請(qǐng)求,并報(bào)錯(cuò)提示“Too many connections”。對(duì)于被拒絕連接的請(qǐng)求來(lái)說(shuō),從業(yè)務(wù)角度看就是數(shù)據(jù)庫(kù)不可用。調(diào)高max_connections的值,有可能導(dǎo)致已經(jīng)連接的線(xiàn)程拿不到CPU資源去執(zhí)行業(yè)務(wù)的SQL請(qǐng)求。
第一種方法:先處理掉那些占用連接但是不工作的線(xiàn)程。
max_connections的計(jì)算,不是看誰(shuí)再running,是只要連著就占用一個(gè)計(jì)數(shù)位置。對(duì)于那些不需要保持的連接,我們可以通過(guò)kill connection + 線(xiàn)程id 主動(dòng)踢掉。這個(gè)行為跟事先設(shè)置wait--timeout的效果是一樣的。設(shè)置wait--timeout參數(shù)表示的是,一個(gè)線(xiàn)程空閑wait--timeout這么多秒之后,就會(huì)被MYSQL直接斷開(kāi)連接。第二種方法:減少連接過(guò)程的消耗。
有的業(yè)務(wù)代碼會(huì)在短時(shí)間內(nèi)先大量申請(qǐng)數(shù)據(jù)庫(kù)連接做備用,如果現(xiàn)在數(shù)據(jù)庫(kù)確認(rèn)是被連接行為打掛了,那么一種可能的做法,是讓數(shù)據(jù)庫(kù)跳過(guò)權(quán)限驗(yàn)證階段。跳過(guò)權(quán)限驗(yàn)證的方式是:重啟數(shù)據(jù)庫(kù),并使用-skip-grant-tables參數(shù)啟動(dòng)。這樣,整個(gè)MYSQL會(huì)跳過(guò)所有的權(quán)限驗(yàn)證階段,包括連接過(guò)程和語(yǔ)句執(zhí)行過(guò)程在內(nèi)(風(fēng)險(xiǎn)極高)。
在MySQL 8.0版本里,如果你啟用-skip-grant-tables參數(shù),MySQL會(huì)默認(rèn)把-skip-networking參數(shù)打開(kāi),表示這時(shí)候數(shù)據(jù)庫(kù)只能被本地的客戶(hù)端連接??梢?jiàn),MySQL官方對(duì)-skip-grant-tables參數(shù)的安全問(wèn)題也很重視。
這些方法對(duì)于提高M(jìn)ySQL性能還是比較有效的,另外就是游戲服務(wù)器對(duì)穩(wěn)定性的要求比較高,所以建議大家找云網(wǎng)時(shí)代這類(lèi)比較有實(shí)力的服務(wù)商,云網(wǎng)時(shí)代機(jī)房全年穩(wěn)電,有專(zhuān)業(yè)技術(shù)團(tuán)隊(duì)提供7x24小時(shí)服務(wù),確保服務(wù)器的安全穩(wěn)定,云網(wǎng)時(shí)代專(zhuān)業(yè)提供深圳主機(jī)租用,深圳服務(wù)器托管,深圳服務(wù)器租用,云主機(jī)租用等服務(wù),歡迎咨詢(xún)客服了解詳情。