資料庫的操作越來越成為整個應用的性能瓶頸,這對于Web應用尤其明顯,關于資料庫的性能,這并不只是DBA需要關心的,而更是后端開發需要去關注的事情,
所以本文講解MySQL在各個方面的優化方向,方便后端開發人員在調優和問題排查程序中找到切入點,
1.服務器硬體的優化
提升硬體設備,例如選擇盡量高頻率的記憶體(頻率不能高于主板的支持)、提升網路帶寬、使用SSD高速磁盤、提升CPU性能等,
CPU的選擇:
對于資料庫并發比較高的場景,CPU的數量比頻率重要,
對于CPU密集型場景和頻繁執行復雜SQL的場景,CPU的頻率越高越好,
2.MySQL資料庫配置優化
表示緩沖池位元組大小,
推薦值為物理記憶體的50%~80%,
innodb_buffer_pool_size
用來控制redo log重繪到磁盤的策略,
innodb_flush_log_at_trx_commit=1
每提交1次事務同步寫到磁盤中,可以設定為n,
sync_binlog=1
臟頁占innodb_buffer_pool_size的比例時,觸發刷臟頁到磁盤, 推薦值為25%~50%,
innodb_max_dirty_pages_pct=30
后臺行程最大IO性能指標,
默認200,如果SSD,調整為5000~20000
innodb_io_capacity=200
指定innodb共享表空間檔案的大小,
innodb_data_file_path
慢查詢日志的閾值設定,單位秒,
long_qurey_time=0.3
mysql復制的形式,row為MySQL8.0的默認形式,
binlog_format=row
調高該引數則應降低interactive_timeout、wait_timeout的值,
max_connections=200
過大,實體恢復時間長;過小,造成日志切換頻繁,
innodb_log_file_size
全量日志建議關閉,
默認關閉,
general_log=0
本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/544159.html
標籤:其他
