下文給大家?guī)?lái)有關(guān)MySQL的性能該如何優(yōu)化內(nèi)容,相信大家一定看過(guò)類(lèi)似的文章。我們給大家?guī)?lái)的有何不同呢?一起來(lái)看看正文部分吧,相信看完mysql的性能該如何優(yōu)化你一定會(huì)有所收獲。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),興隆臺(tái)企業(yè)網(wǎng)站建設(shè),興隆臺(tái)品牌網(wǎng)站建設(shè),網(wǎng)站定制,興隆臺(tái)網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,興隆臺(tái)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
文件系統(tǒng):
優(yōu)化文件系統(tǒng)掛載參數(shù):文件系統(tǒng)掛載參數(shù)是在/etc/fstab文件中修改,重啟時(shí)候生效。noatime表示不記錄訪(fǎng)問(wèn)時(shí)間,nodiratime不記錄目錄的訪(fǎng)問(wèn)時(shí)間。barrier=0,表示關(guān)閉barrier功能。其中nobarrier是xfs文件系統(tǒng)特有,ext4文件系統(tǒng)并無(wú)此參數(shù)。
擴(kuò)大文件描述符:
1、動(dòng)態(tài)修改,重啟失效,只能使用root,并且當(dāng)前session有效:ulimit -n 65535
2、修改配置文件,永久生效,在/etc/security/limits.conf配置文件中增加:
soft nofile 65535
soft nproc 65535
hard nofile 65535
hard nproc 65535
sync_binlog:
sync_binlog=0,當(dāng)事務(wù)提交之后,MySQL不做fsync之類(lèi)的磁盤(pán)同步指令刷新binlog_cache中的信息到磁盤(pán),而讓Filesystem自行決定什么時(shí)候來(lái)做同步,或者cache滿(mǎn)了之后才同步到磁盤(pán)。
sync_binlog=n,當(dāng)每進(jìn)行n次事務(wù)提交之后,MySQL將進(jìn)行一次fsync之類(lèi)的磁盤(pán)同步指令來(lái)將binlog_cache中的數(shù)據(jù)強(qiáng)制寫(xiě)入磁盤(pán)。
innodb_flush_log_at_trx_commit:
如果innodb_flush_log_at_trx_commit設(shè)置為0,log buffer將每秒一次地寫(xiě)入log file中,并且log file的flush(刷到磁盤(pán))操作同時(shí)進(jìn)行.該模式下,在事務(wù)提交的時(shí)候,不會(huì)主動(dòng)觸發(fā)寫(xiě)入磁盤(pán)的操作。
如果innodb_flush_log_at_trx_commit設(shè)置為1,每次事務(wù)提交時(shí)MySQL都會(huì)把log buffer的數(shù)據(jù)寫(xiě)入log file,并且flush(刷到磁盤(pán))中去.
如果innodb_flush_log_at_trx_commit設(shè)置為2,每次事務(wù)提交時(shí)MySQL都會(huì)把log
buffer的數(shù)據(jù)寫(xiě)入log file.但是flush(刷到磁盤(pán))操作并不會(huì)同時(shí)進(jìn)行。該模式下,MySQL會(huì)每秒執(zhí)行一次
flush(刷到磁盤(pán))操作。
強(qiáng)烈建議關(guān)閉query cache。通過(guò)配置文件設(shè)置query_cache_size = 0、query_cache_type = 0即可。
分布式優(yōu)化
分庫(kù)分表:
這里也可以分為2類(lèi):
(1)通過(guò)前端應(yīng)用代碼邏輯實(shí)現(xiàn)的方式,實(shí)現(xiàn)表分拆的方式。這樣做對(duì)應(yīng)用程序的侵入性比較大,但是數(shù)據(jù)處理邏輯的過(guò)程把控在自己手上,有異??梢宰灾鞫ㄎ弧?/p>
(2)通過(guò)中間件的方式實(shí)現(xiàn),目前常用的mycat、cobar實(shí)現(xiàn)數(shù)據(jù)分片。
讀寫(xiě)分離:
一般通過(guò)數(shù)據(jù)庫(kù)中間件的方式實(shí)現(xiàn),常用的中間件例如:maxscale、mycat、cobar、altas等
對(duì)于上文關(guān)于mysql的性能該如何優(yōu)化,大家覺(jué)得是自己想要的嗎?如果想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。