Linux下MySQL安裝相關(guān)參數(shù)詳述 |
發(fā)布時間: 2012/8/9 17:48:47 |
skip-locking set-variable=interactive_timeout=7200 避免MySQL的外部鎖定,減少出錯幾率增強穩(wěn)定性。 key_buffer_size: 索引塊是緩沖的并且被所有的線程共享。key_buffer_size是用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統(tǒng)將開始換頁并且真的變慢了。默認數(shù)值是8388600(8M),我的MySQL主機有2GB內(nèi)存,所以我把它改為402649088(400MB)。 max_allowed_packet read_buffer_size=6M 讀查詢操作所能使用的緩沖區(qū)大小,該參數(shù)對應(yīng)的分配內(nèi)存是每連接獨占!如果有100個連接,那么實際分配的總共排序緩沖區(qū)大小為100 × 6 = 600MB。所以,對于內(nèi)存在4GB左右的服務(wù)器推薦設(shè)置為6-8M。 myisam_sort_buffer_size query_cache_size 指定MySQL查詢緩沖區(qū)的大小?梢酝ㄟ^在MySQL控制臺執(zhí)行以下命令觀察: # > SHOW VARIABLES LIKE '%query_cache%'; # > SHOW STATUS LIKE 'Qcache%'; # 如果Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況; 如果Qcache_hits的值非常大,則表明查詢緩沖使用非常頻繁,如果該值較小反而會影響效率,那么可以考慮不用查詢緩沖;Qcache_free_blocks,如果該值非常大,則表明緩沖區(qū)中碎片很多。 thread_concurrency 該參數(shù)取值為服務(wù)器邏輯CPU數(shù)量×2,在本例中,服務(wù)器有2顆物理CPU,而每顆物理CPU又支持H.T超線程,所以實際取值為4 × 2 = 8 back_log: 要求 MySQL 能有的連接數(shù)量。當主要MySQL線程在一個很短時間內(nèi)得到非常多的連接請求,這就起作用,然后主線程花些時間(盡管很短)檢查連接并且啟動一個新線程。 back_log值指出在MySQL暫時停止回答新請求之前的短時間內(nèi)多少個請求可以被存在堆棧中。只有如果期望在一個短時間內(nèi)有很多連接,你需要增加它,換句話說,這值對到來的TCP/IP連接的偵聽隊列的大小。你的操作系統(tǒng)在這個隊列大小上有它自己的限制。 試圖設(shè)定back_log高于你的操作系統(tǒng)的限制將是無效的。當你觀察你的主機進程列表,發(fā)現(xiàn)大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連接進程時,就要加大 back_log 的值了。默認數(shù)值是50,我把它改為500。 interactive_timeout 服務(wù)器在關(guān)閉它前在一個交互連接上等待行動的秒數(shù)。一個交互的客戶被定義為對 mysql_real_connect()使用 CLIENT_INTERACTIVE 選項的客戶。 默認數(shù)值是28800,我把它改為7200。 wait_timeout 服務(wù)器在關(guān)閉它之前在一個連接上等待行動的秒數(shù)。 默認數(shù)值是28800,我把它改為7200。 key_buffer_size 索引塊是緩沖的并且被所有的線程共享。key_buffer_size是用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統(tǒng)將開始換頁并且真的變慢了。默認數(shù)值是8388600(8M),我的MySQL主機有2GB內(nèi)存,所以我把它改為402649088(400MB)。 max_connections: 允許的同時客戶的數(shù)量。增加該值增加 mysqld 要求的文件描述符的數(shù)量。這個數(shù)字應(yīng)該增加,否則,你將經(jīng)常看到 Too many connections 錯誤。 默認數(shù)值是100,我把它改為1024 。 record_buffer: 每個進行一個順序掃描的線程為其掃描的每張表分配這個大小的一個緩沖區(qū)。如果你做很多順序掃描,你可能想要增加該值。默認數(shù)值是131072(128K),我把它改為16773120 (16M) sort_buffer: 每個需要進行排序的線程分配該大小的一個緩沖區(qū)。增加這值加速ORDER BY或GROUP BY操作。默認數(shù)值是2097144(2M),我把它改為 16777208 (16M)。 table_cache: 為所有線程打開表的數(shù)量。增加該值能增加mysqld要求的文件描述符的數(shù)量。MySQL對每個唯一打開的表需要2個文件描述符。默認數(shù)值是64,我把它改為512。 thread_cache_size: 可以復(fù)用的保存在中的線程的數(shù)量。如果有,新的線程從緩存中取得,當斷開連接的時候如果有空間,客戶的線置在緩存中。如果有很多新的線程,為了提高性能可以這個變量值。通過比較 Connections 和 Threads_created 狀態(tài)的變量,可以看到這個變量的作用。我把它設(shè)置為 80。 max_connect_errors 允許的中斷連接請求的數(shù)量。當超出max_connect_errors規(guī)定的連接請求時,mysqld將認為某處出錯(例如,某人正試圖插入),并屏蔽主機的進一步連接請求,直至執(zhí)行了mysqladmin flush-hosts命令,或發(fā)出了FLUSH HOSTS語句為止。 log_slow_queries 開啟慢查詢?nèi)罩? slow query log ) 慢查詢?nèi)罩緦τ诟櫽袉栴}的查詢非常有用。它記錄所有查過long_query_time的查詢,如果需要,還可以記錄不使用索引的記錄。 join_buffer_size 聯(lián)合查詢操作所能使用的緩沖區(qū)大小,和sort_buffer_size一樣,該參數(shù)對應(yīng)的分配內(nèi)存也是每連接獨享! SHOW STATUS LIKE 'Qcache%'; Qcache queries in cache 12737 表明目前緩存的條數(shù) Qcache inserts 20649006 Qcache hits 79060095 看來重復(fù)查詢率還挺高的 Qcache lowmem prunes 617913 有這么多次出現(xiàn)緩存過低的情況 Qcache not cached 189896 Qcache free memory 18573912 目前剩余緩存空間 Qcache free blocks 5328 這個數(shù)字似乎有點大 碎片不少 Qcache total blocks 30953 本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |