您好,登錄后才能下訂單哦!
下文給大家帶來有關mysql的性能該如何優化內容,相信大家一定看過類似的文章。我們給大家帶來的有何不同呢?一起來看看正文部分吧,相信看完mysql的性能該如何優化你一定會有所收獲。
文件系統:
優化文件系統掛載參數:文件系統掛載參數是在/etc/fstab文件中修改,重啟時候生效。noatime表示不記錄訪問時間,nodiratime不記錄目錄的訪問時間。barrier=0,表示關閉barrier功能。其中nobarrier是xfs文件系統特有,ext4文件系統并無此參數。
擴大文件描述符:
1、動態修改,重啟失效,只能使用root,并且當前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,當事務提交之后,MySQL不做fsync之類的磁盤同步指令刷新binlog_cache中的信息到磁盤,而讓Filesystem自行決定什么時候來做同步,或者cache滿了之后才同步到磁盤。
sync_binlog=n,當每進行n次事務提交之后,MySQL將進行一次fsync之類的磁盤同步指令來將binlog_cache中的數據強制寫入磁盤。
innodb_flush_log_at_trx_commit:
如果innodb_flush_log_at_trx_commit設置為0,log buffer將每秒一次地寫入log file中,并且log file的flush(刷到磁盤)操作同時進行.該模式下,在事務提交的時候,不會主動觸發寫入磁盤的操作。
如果innodb_flush_log_at_trx_commit設置為1,每次事務提交時MySQL都會把log buffer的數據寫入log file,并且flush(刷到磁盤)中去.
如果innodb_flush_log_at_trx_commit設置為2,每次事務提交時MySQL都會把log
buffer的數據寫入log file.但是flush(刷到磁盤)操作并不會同時進行。該模式下,MySQL會每秒執行一次
flush(刷到磁盤)操作。
強烈建議關閉query cache。通過配置文件設置query_cache_size = 0、query_cache_type = 0即可。
分布式優化
分庫分表:
這里也可以分為2類:
(1)通過前端應用代碼邏輯實現的方式,實現表分拆的方式。這樣做對應用程序的侵入性比較大,但是數據處理邏輯的過程把控在自己手上,有異常可以自主定位。
(2)通過中間件的方式實現,目前常用的mycat、cobar實現數據分片。
讀寫分離:
一般通過數據庫中間件的方式實現,常用的中間件例如:maxscale、mycat、cobar、altas等
對于上文關于mysql的性能該如何優化,大家覺得是自己想要的嗎?如果想要了解更多相關,可以繼續關注我們的行業資訊板塊。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。