內存相關參數
innodb_buffer_pool_size
:設置為服務器物理內存的50%-80%(如16GB內存設為8G-12G),用于緩存數據和索引,顯著提升查詢速度。innodb_log_file_size
:增大至256M-512M,減少日志切換頻率,提升大事務處理能力。max_connections
:根據并發需求調整(建議不超過CPU核心數×2),避免連接過多導致資源耗盡。性能關鍵參數
innodb_flush_log_at_trx_commit
:設為2(犧牲部分持久性換取性能),僅適用于非金融級場景。query_cache_size
:開啟并設置為64M-128M(僅適用于低并發場景,高并發建議關閉)。索引策略
SHOW INDEX FROM table
檢查索引使用情況,刪除冗余索引。查詢語句優化
SELECT *
,只查詢必要字段。EXPLAIN
分析查詢計劃,定位慢查詢瓶頸(如未走索引、臨時表使用過多等)。JOIN
替代子查詢,減少查詢層級。硬件升級
系統配置
vm.swappiness=1
減少交換空間使用)。taskset
命令),減少上下文切換。定期維護
OPTIMIZE TABLE
整理表碎片,尤其針對頻繁更新的表。slow_query_log
),分析并優化高頻慢查詢。監控工具
top/htop
監控CPU和內存使用情況,iostat
監控磁盤I/O。thread_handling=pool-of-threads
),提升高并發場景下的連接處理效率。注意事項:修改配置后需重啟MariaDB服務(sudo systemctl restart mariadb
),生產環境建議先在測試環境驗證調優效果。
參考來源: