mysql主配文件my.cf詳解
調整MySQL運行參數,修改/etc/my.cnf文件調整mysql運行參數重啓MySQL後生效,在MySQL4版本以後,一部分內部變量可以在MySQL運行時設置,不過重啓MySQL就失效了。
mysqld程序--目錄和文件
basedir = path # 使用給定目錄作爲根目錄(安裝目錄)。
datadir = path # 從給定目錄讀取數據庫文件。
pid-file = filename # 爲mysqld程序指定一個存放進程ID的文件(僅適用於UNIX/Linux系統);
[mysqld]
socket = /tmp/mysql.sock # 爲MySQL客戶程序與服務器之間的本地通信指定一個套接字文件(Linux下默認是/var/lib/mysql/mysql.sock文件)
port = 3306 # 指定MsSQL偵聽的端口
key_buffer = 384M # key_buffer是用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫)。
索引塊是緩衝的並且被所有的線程共享,key_buffer的大小視內存大小而定。
table_cache = 512 # 爲所有線程打開表的數量。增加該值能增加mysqld要求的文件描述符的數量。可以避免頻繁的打開數據表產生的開銷
sort_buffer_size = 2M # 每個需要進行排序的線程分配該大小的一個緩衝區。增加這值加速ORDER BY或GROUP BY操作。
注意:該參數對應的分配內存是每連接獨佔!如果有100個連接,那麼實際分配的總共排序緩衝區大小爲100×6=600MB
read_buffer_size = 2M # 讀查詢操作所能使用的緩衝區大小。和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享。
query_cache_size = 32M # 指定MySQL查詢結果緩衝區的大小
read_rnd_buffer_size = 8M # 改參數在使用行指針排序之後,隨機讀用的。
myisam_sort_buffer_size =64M # MyISAM表發生變化時重新排序所需的緩衝
thread_concurrency = 8 # 最大併發線程數,取值爲服務器邏輯CPU數量×2,如果CPU支持H.T超線程,再×2
thread_cache = 8 # #緩存可重用的線程數
skip-locking # 避免MySQL的外部鎖定,減少出錯機率增強穩定性。
[mysqldump]
max_allowed_packet =16M # 服務器和客戶端之間最大能發送的可能信息包
[myisamchk]
key_buffer = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M
其他可選參數:
back_log = 384
指定MySQL可能的連接數量。
當MySQL主線程在很短時間內接收到非常多的連接請求,該參數生效,主線程花費很短時間檢查連接並且啓動一個新線程。
back_log參數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆棧中。
如果系統在一個短時間內有很多連接,則需要增大該參數的值,該參數值指定到來的TCP/IP連接的偵聽隊列的大小。
試圖設定back_log高於你的操作系統的限制將是無效的。默認值爲50。對於Linux系統推薦設置爲小於512的整數。
max_connections = n
MySQL服務器同時處理的數據庫連接的最大數量(默認設置是100)。超過限制後會報 Too many connections 錯誤
key_buffer_size = n
用來存放索引區塊的RMA值(默認設置是8M),增加它可得到更好處理的索引(對所有讀和多重寫)
record_buffer:
每個進行一個順序掃描的線程爲其掃描的每張表分配這個大小的一個緩衝區。
如果你做很多順序掃描,你可能想要增加該值。默認數值是131072(128K)
wait_timeout:
服務器在關閉它之前在一個連接上等待行動的秒數。
interactive_timeout:
服務器在關閉它前在一個交互連接上等待行動的秒數。
一個交互的客戶被定義爲對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。
默認數值是28800,可以把它改爲3600。
skip-name-resolve
禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。
但需要注意,如果開啓該選項,則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求!
log-slow-queries = slow.log
記錄慢查詢,然後對慢查詢一一優化
skip-innodb
skip-bdb
關閉不需要的表類型,如果你需要,就不要加上這個
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩衝不夠的情況;
如果Qcache_hits的值非常大,則表明查詢緩衝使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩衝;
如果Qcache_free_blocks的值非常大,則表明緩衝區中碎片很多。
mysqld程序--目錄和文件
basedir = path # 使用給定目錄作爲根目錄(安裝目錄)。
datadir = path # 從給定目錄讀取數據庫文件。
pid-file = filename # 爲mysqld程序指定一個存放進程ID的文件(僅適用於UNIX/Linux系統);
[mysqld]
socket = /tmp/mysql.sock # 爲MySQL客戶程序與服務器之間的本地通信指定一個套接字文件(Linux下默認是/var/lib/mysql/mysql.sock文件)
port = 3306 # 指定MsSQL偵聽的端口
key_buffer = 384M # key_buffer是用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫)。
索引塊是緩衝的並且被所有的線程共享,key_buffer的大小視內存大小而定。
table_cache = 512 # 爲所有線程打開表的數量。增加該值能增加mysqld要求的文件描述符的數量。可以避免頻繁的打開數據表產生的開銷
sort_buffer_size = 2M # 每個需要進行排序的線程分配該大小的一個緩衝區。增加這值加速ORDER BY或GROUP BY操作。
注意:該參數對應的分配內存是每連接獨佔!如果有100個連接,那麼實際分配的總共排序緩衝區大小爲100×6=600MB
read_buffer_size = 2M # 讀查詢操作所能使用的緩衝區大小。和sort_buffer_size一樣,該參數對應的分配內存也是每連接獨享。
query_cache_size = 32M # 指定MySQL查詢結果緩衝區的大小
read_rnd_buffer_size = 8M # 改參數在使用行指針排序之後,隨機讀用的。
myisam_sort_buffer_size =64M # MyISAM表發生變化時重新排序所需的緩衝
thread_concurrency = 8 # 最大併發線程數,取值爲服務器邏輯CPU數量×2,如果CPU支持H.T超線程,再×2
thread_cache = 8 # #緩存可重用的線程數
skip-locking # 避免MySQL的外部鎖定,減少出錯機率增強穩定性。
[mysqldump]
max_allowed_packet =16M # 服務器和客戶端之間最大能發送的可能信息包
[myisamchk]
key_buffer = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M
其他可選參數:
back_log = 384
指定MySQL可能的連接數量。
當MySQL主線程在很短時間內接收到非常多的連接請求,該參數生效,主線程花費很短時間檢查連接並且啓動一個新線程。
back_log參數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆棧中。
如果系統在一個短時間內有很多連接,則需要增大該參數的值,該參數值指定到來的TCP/IP連接的偵聽隊列的大小。
試圖設定back_log高於你的操作系統的限制將是無效的。默認值爲50。對於Linux系統推薦設置爲小於512的整數。
max_connections = n
MySQL服務器同時處理的數據庫連接的最大數量(默認設置是100)。超過限制後會報 Too many connections 錯誤
key_buffer_size = n
用來存放索引區塊的RMA值(默認設置是8M),增加它可得到更好處理的索引(對所有讀和多重寫)
record_buffer:
每個進行一個順序掃描的線程爲其掃描的每張表分配這個大小的一個緩衝區。
如果你做很多順序掃描,你可能想要增加該值。默認數值是131072(128K)
wait_timeout:
服務器在關閉它之前在一個連接上等待行動的秒數。
interactive_timeout:
服務器在關閉它前在一個交互連接上等待行動的秒數。
一個交互的客戶被定義爲對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。
默認數值是28800,可以把它改爲3600。
skip-name-resolve
禁止MySQL對外部連接進行DNS解析,使用這一選項可以消除MySQL進行DNS解析的時間。
但需要注意,如果開啓該選項,則所有遠程主機連接授權都要使用IP地址方式,否則MySQL將無法正常處理連接請求!
log-slow-queries = slow.log
記錄慢查詢,然後對慢查詢一一優化
skip-innodb
skip-bdb
關閉不需要的表類型,如果你需要,就不要加上這個
# > SHOW VARIABLES LIKE '%query_cache%';
# > SHOW STATUS LIKE 'Qcache%';
如果Qcache_lowmem_prunes的值非常大,則表明經常出現緩衝不夠的情況;
如果Qcache_hits的值非常大,則表明查詢緩衝使用非常頻繁,如果該值較小反而會影響效率,那麼可以考慮不用查詢緩衝;
如果Qcache_free_blocks的值非常大,則表明緩衝區中碎片很多。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.