標籤:mysql 最佳化
1 安裝最佳化
一般說來,系統功能越多越複雜,效能就會越差。因此在編譯安裝MySQL時,僅安裝需要的功能模組。如儲存引擎、需要的字元集等,讓系統儘可能的簡單。
2 日誌設定最佳化
由於日誌記錄直接帶來的效能損耗就是資料庫最為昂貴的I/O資源,因此在預設情況下MySQL僅開啟了錯誤記錄檔,關閉了其它所有日誌。但是在生產環境中,至少需要開啟二進位日誌和慢查詢日誌,前者是增量備份的基礎,而後者有利於進一步對資料庫進行最佳化。通常情況下,生產環境中很少會開啟一般查詢日誌,如果開啟,資料庫會記錄每一條操作記錄對系統I/O效能影響很大。
查看二進位日誌設定,預設關閉:
mysql> show variables like ‘%log%bin%‘;
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+-------+
6 rows in set (0.00 sec)
查看慢查詢日誌設定,預設關閉:
mysql> show variables like "slow%";
+---------------------+-----------------------------+
| Variable_name | Value |
+---------------------+-----------------------------+
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /data/mysql/slave2-slow.log |
+---------------------+-----------------------------+
3 記憶體最佳化
key_buffer_size:MyISAM引擎索引緩衝的大小,4G記憶體建議設為256M,最大不超過4G
read_buffer_size:讀查詢(順序讀)使用的緩衝區大小,預設為128KB,此值為每個串連獨享因此不能太大,在生產環境中,應進行多次測試,找到最佳值(為4KB的倍數)
read_rnd_buffer_size:讀查詢(隨機讀)使用的緩衝區大小,預設為256KB,同樣是每個串連獨享,一般來講,可以適當調大
max_connections:MySQL允許的最大串連數,預設為151,如果主機效能和記憶體允許的話,500-800較為合適
thread_cache_size:Thread_cache池中可以緩衝的連接線程最大數量,建議100以內
本文出自 “一萬年太久,只爭朝夕” 部落格,請務必保留此出處http://zengwj1949.blog.51cto.com/10747365/1920738
MySQL最佳化之二:My SQL Server效能最佳化