l 通用類: key_buffer_size 含義 :用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對(duì)所有讀和多重寫)。 影響 :對(duì)于 MyISAM 表的影響不是很大, MyISAM 會(huì)使用系統(tǒng)的緩存來存儲(chǔ)數(shù)據(jù),所以大量使用 MyISAM 表的機(jī)器內(nèi)存很快就會(huì)耗
l 通用類:
key_buffer_size
含義:用于索引塊的緩沖區(qū)大小,增加它可得到更好處理的索引(對(duì)所有讀和多重寫)。
影響:對(duì)于MyISAM表的影響不是很大,MyISAM會(huì)使用系統(tǒng)的緩存來存儲(chǔ)數(shù)據(jù),所以大量使用MyISAM表的機(jī)器內(nèi)存很快就會(huì)耗盡。但是,如果你將該值設(shè)得過大(例如,大于總內(nèi)存的50%),系統(tǒng)將轉(zhuǎn)換為頁并變得極慢。MySQL依賴操作系統(tǒng)來執(zhí)行數(shù)據(jù)讀取時(shí)的文件系統(tǒng)緩存,因此你必須為文件系統(tǒng)緩存留一些空間。
建議:先設(shè)置為內(nèi)存的25%,觀察性能變化。
table_open_cache
含義:為所有線程打開表的數(shù)量。
影響:增加該值能增加mysqld要求的文件描述符的數(shù)量??梢员苊忸l繁的打開數(shù)據(jù)表產(chǎn)生的開銷。打開一個(gè)表的開銷可能很大,因?yàn)镸yISAM會(huì)把MYI文件的文件頭標(biāo)識(shí)為正在使用,所以在內(nèi)存中做這個(gè)操作比較好。,因?yàn)槊總€(gè)線程都需要打開表,連接數(shù)越大這個(gè)值要越大。
建議:我們有300多個(gè)表的話,大約2048差不多了。
thread_cache_size
含義:緩存可重用的線程數(shù)。
影響:這個(gè)參數(shù)設(shè)置線程的緩存,線程的創(chuàng)建和銷毀的開銷可能很大,因?yàn)槊總€(gè)線程的連接/斷開都需要。如果應(yīng)用程序中有大量的跳躍并發(fā)連接并且線程較多的話,就要加大它的值。它的目的是在通常的操作中無需創(chuàng)建新線程。
建議:通常至少設(shè)置為16。
query_cache_size
含義:指定MySQL查詢結(jié)果緩沖區(qū)的大小。
影響:如果應(yīng)用程序有大量讀,而且沒有應(yīng)用程序級(jí)別的緩存,那么這很有用。不過不要設(shè)置太大,因?yàn)榫S護(hù)它也需要不少開銷,這會(huì)導(dǎo)致MySQL變慢。
建議:通常設(shè)置為 32-512Mb。設(shè)置完之后最好是跟蹤一段時(shí)間,查看是否運(yùn)行良好。在一定的負(fù)載壓力下,如果緩存命中率太低了,就啟用它,如果命中率已經(jīng)不錯(cuò)了,就可以把他調(diào)小一點(diǎn)。對(duì)于2G的內(nèi)存,先從16M開始,一倍一倍的增加,直到命中率比較穩(wěn)定為止。
query_cache_limit
含義:緩存單條SQL的結(jié)果集上限。默認(rèn)4KB。
影響:當(dāng)一條SQL返回的結(jié)果集大于這個(gè)限制的時(shí)候,將不被MySQL緩存。
建議:設(shè)置為1M即可。
query_cache_min_res_unit
含義:緩存為每個(gè)數(shù)據(jù)集存放的最小內(nèi)存大小,默認(rèn)4KB。
影響:如果太小的話,將會(huì)導(dǎo)致MySQL經(jīng)常訪問內(nèi)存塊去獲取信息,如果設(shè)置太大則浪費(fèi)內(nèi)存。
建議:如果SQL返回的結(jié)果集都很小的話,參數(shù)也可以調(diào)小一點(diǎn),避免內(nèi)存浪費(fèi)。如果結(jié)果集大部分都大于4KB的話,則考慮加大參數(shù)。
back_log
含義:在MySQL的連接請(qǐng)求等待隊(duì)列中允許存放的最大連接請(qǐng)求數(shù)。系統(tǒng)默認(rèn)值為50。
影響:如果系統(tǒng)在一個(gè)短時(shí)間內(nèi)有很多連接,則需要增大該參數(shù)的值,該參數(shù)值指定到來的TCP/IP連接的偵聽隊(duì)列的大小。不同的操作系統(tǒng)在這個(gè)隊(duì)列大小上有它自 己的限制。試圖設(shè)定back_log高于你的操作系統(tǒng)的限制將是無效的。
建議:對(duì)于Linux系統(tǒng)推薦設(shè)置為小于512的整數(shù)。
sort_buffer_size
含義:為每個(gè)需要進(jìn)行排序的線程分配該大小的一個(gè)緩沖區(qū)。
影響:增加這值加速ORDER BY或GROUP BY操作。不過該參數(shù)對(duì)應(yīng)的分配內(nèi)存是每連接獨(dú)占的,如果有100個(gè)連接,那么實(shí)際分配的總共排序緩沖區(qū)大小為100×sort_buffer_size。
建議:一般設(shè)置為2M觀察變化再調(diào)整。
read_buffer_size
含義:順序查詢操作所能使用的緩沖區(qū)大小。
影響:和sort_buffer_size一樣,該參數(shù)對(duì)應(yīng)的分配內(nèi)存也是每連接獨(dú)享。
建議:一般設(shè)置為2M再觀察變化。
read_rnd_buffer_size
含義:隨機(jī)查詢操作所能使用的緩沖區(qū)大小。
影響:每個(gè)線程獨(dú)享。
建議:一般設(shè)置為2M再觀察變化。
query_cache_type
含義:查詢緩沖類型。
影響:為1是使用緩沖,2是除非使用SQL_CACHE才進(jìn)行緩沖。對(duì)于緩沖而言,數(shù)據(jù)并不是實(shí)時(shí)的,有一定的延時(shí)。但是對(duì)于實(shí)時(shí)性要求不高的查詢短時(shí)間內(nèi)多次執(zhí)行,是不劃算的,這個(gè)時(shí)候就需要緩存。并且緩存中是區(qū)分空格和大小寫的,如果大小寫不一致和空格不一致,也會(huì)認(rèn)為是不同的SQL,不會(huì)利用到緩存。雖然不設(shè)置查詢緩沖,有時(shí)可能帶來性能上的損失,但有一些SQL語句需要實(shí)時(shí)地查詢數(shù)據(jù),或并不經(jīng)常使用(可能一天就執(zhí)行一兩次),這樣就需要把緩沖關(guān)了,可以采用臨時(shí)關(guān)閉的方法SELECT SQL_NO_CACHE。
建議:一般設(shè)置為1。
l MyISAM類:
myisam_sort_buffer_size
MyISAM表發(fā)生變化時(shí)重新排序所需的緩沖。一般64M足矣。
l InnoDB類:
innodb_buffer_pool_size
對(duì)InnoDB的效率影響很大。因?yàn)镮nnoDB會(huì)把盡可能多的數(shù)據(jù)和索引緩存在緩沖區(qū),這個(gè)類似與Oracle的Buffer Pool:如果只采用InnoDB,可以把這個(gè)參數(shù)調(diào)大一點(diǎn),大約內(nèi)存的70%左右。
當(dāng)然,如果數(shù)據(jù)量不會(huì)暴增并且不是特別大,這個(gè)參數(shù)還是不要太大了,浪費(fèi)空間。
innodb_additional_pool_size
對(duì)數(shù)據(jù)庫性能影響不是很大,至少內(nèi)存足夠的機(jī)器上不會(huì)有什么影響。
innodb_log_file_size
在高寫入負(fù)載尤其是數(shù)據(jù)集很大的時(shí)候,這個(gè)值非常重要,值越高性能越好,不過可能會(huì)增加數(shù)據(jù)恢復(fù)的時(shí)候。我設(shè)置為128M。
innodb_log_buffer_size
默認(rèn)的設(shè)置在中等強(qiáng)度的寫入負(fù)載及短事物處理時(shí),性能還可以。但是存在大量更新操作或者負(fù)載較大時(shí),就要慢慢增加這個(gè)參數(shù)的值了。不過不要設(shè)置太大,會(huì)浪費(fèi)內(nèi)存。它每秒都會(huì)刷新一次,所以不用設(shè)置超過1s所需的內(nèi)存空間,16M足夠了。
innodb_flush_logs_at_trx_commit
這個(gè)參數(shù)對(duì)InnoDB及其重要,設(shè)置不好的話會(huì)比MyISAM慢1000倍!默認(rèn)是1,這就是說每次更新事務(wù)都會(huì)被提交到磁盤,這是非常消耗資源的,硬盤和內(nèi)存的速度是明顯數(shù)量級(jí)的差距。
設(shè)置為0是最快的,但是很不安全,全部在緩存中,一掉電全沒了。
設(shè)置為1很不好,每次都去寫硬盤,沒有必要。
設(shè)置為2是比較好的,日志不刷新到磁盤上,只刷新到操作系統(tǒng)緩存上。然后每秒鐘寫緩存。相對(duì)于現(xiàn)在數(shù)據(jù)庫每秒4K條左右的SQL,性能已經(jīng)可以提高不少。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com