共計 1634 個字符,預計需要花費 5 分鐘才能閱讀完成。
本篇內容介紹了“MySQL server 安裝前后需要做哪些優化”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
一、硬件部分
1、建議單獨跑 MySQL server 的服務器 使用 ssd 磁盤,提高磁盤的 io
2、建議選擇使用 RAID 10 而非 RAID 5 RAID 10 雖然浪費了一部分磁盤空間,但是比 RAID5 的 IO 能力提高不少
二、OS 部分
1、建議使用 deadline/noop 這兩種 I / O 調度器,系統默認的為 cfq
2、建議使用 xfs 文件系統、高并發情況下凸顯出其性能優勢
三、系統內核優化
1、將 net.ipv4.tcp_tw_recycle 設置為 1
2、將 net.ipv4.tcp_tw_reuse 設置為 1
3、將以上兩個參數開啟,可快速減少在 TIME-WAIT 狀態 TCP 連接數,提高 TCP 效率
4、將 vm.dirty_background_ratio 設置為 5
5、將 vm.dirty_ratio 設置為 10
vm.dirty_background_ratio: 這個參數指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如 5%)就會觸發 pdflush/flush/kdmflush 等后臺回寫進程運行,將一定緩存的臟頁異步地刷入外存
vm.dirty_ratio 而這個參數則指定了當文件系統緩存臟頁數量達到系統內存百分之多少時(如 10%),系統不得不開始處理緩存臟頁(因為此時臟頁數量已經比較多,為了避免數據丟失需要將一定臟頁刷入外存);在此過程中很多應用進程可能會因為系統轉而處理文件 IO 而阻塞。
6、將 vm.swappiness 設置為 0 可以降低 swapping 的延遲(前提是確保機器不會出現內存不足的情況,若出現可能會被 oom 掉)
四、MySQL server 參數優化
1、建議使用 innodb 存儲引擎、MySQL5.5 之后的默認存儲引擎是 innodb 引擎,可滿足 95% 以上用戶需求
2、建議調整 innodb_buffer_pool_size 的大小,主要作用是緩存 innodb 表的索引,數據,插入數據時的緩沖默認為 128M,如果是單獨 MySQL 服務器,建議設置為物理內存的 70%–80% 左右。
并不是設置的越大越好。設置的過大,會導致 system 的 swap 空間被占用,導致操作系統變慢,從而減低 sql 查詢的效率。
innodb 的 logfile 就是事務日志,用來在 mysqlcrash 后的恢復. 所以設置合理的大小對于 mysql 的性能非常重要
3、建議設置 innodb_log_files_in_group = 2
4、建議設置 innodb_file_per_table = 1 使用單獨表空間易維護
1. 如果使用軟鏈接將大表分配到不同的分區上,易于管理數據文件
3. 易于修復和恢復損壞的數據
3.2 導出導入只針對單個表,而不是整個共享表空間
5. 對于大量的 delete 操作,更易于回收磁盤空間
7. 易于安全審計
有三個值:fdatasync(默認),O_DSYNC,O_DIRECT
為 O_DSYNC 時,innodb 會使用 O_SYNC 方式打開和刷寫 redo log, 使用 fsync() 刷寫數據文件
在類 unix 操作系統中,文件的打開方式為 O_DIRECT 會最小化緩沖對 io 的影響,該文件的 io 是直接在用戶空間的 buffer 上操作的,
并且 io 操作是同步的,因此不管是 read()系統調用還是 write()系統調用,數據都保證是從磁盤上讀取的
5、建議設置 binlog_format=row 默認為 statement,強烈建議設置為 row 模式 記錄每一條記錄的修改,有利于主從同步
“MySQL server 安裝前后需要做哪些優化”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!