資源描述:
《mysql調(diào)優(yōu)十參數(shù)-整理》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、比如系統(tǒng)信息為:Linuxlocalhost.localdomain2.6.18-238.el5#1SMPThuJan1315:51:15EST2011x86_64x86_64x86_64GNU/Linux1Keybuffershowvariableslike'%key_buffer_size%'16M太小,修改為32MA、參數(shù)key_buffer_size只對(duì)myisam引擎的表起作用;B、它決定索引處理的速度,尤其是索引讀的速度;C、評(píng)估這個(gè)參數(shù)是否設(shè)置合理可以檢查兩個(gè)狀態(tài)值showstatuslike‘%key_read%’;D、Key_read_requests代表總的請(qǐng)求數(shù),k
2、ey_reads代表讀取磁盤數(shù);E、key_reads/key_read_requests應(yīng)該盡可能的低,至少是1:100,1:1000更好;F、另外一個(gè)估計(jì)key_buffer_size的辦法 把你數(shù)據(jù)庫的每個(gè)表的索引所占空間大小加起來看看。G、該參數(shù)值設(shè)置的過大反而會(huì)是服務(wù)器整體效率降低!H、對(duì)于內(nèi)存在4GB左右的服務(wù)器該參數(shù)可設(shè)置為384M或512M。2QuerycacheA、querycache主要是將SELECT語句和查詢結(jié)果存放在該緩沖區(qū);B、參數(shù)query_cache_size的設(shè)置合理性可以檢查db的狀態(tài):showstatuslike‘%qcache%’C、參數(shù)query
3、_cache_type指定是否使用查詢緩沖;D、設(shè)置參數(shù):query_cache_size=32Mquery_cache_type=1setglobalquery_cache_type=1設(shè)置報(bào)錯(cuò)ERROR1227(42000):Accessdenied;youneedtheSUPERprivilegeforthisoperation使用bcsr登錄bcsr_db數(shù)據(jù)庫,需要bcsr的權(quán)限足夠高,如root才能設(shè)置權(quán)限。E、一段時(shí)間后服務(wù)器狀態(tài)值:Qcachequeriesincache12737表明目前緩存的條數(shù)Qcacheinserts20649006Qcachehits790600
4、95 看來重復(fù)查詢率還挺高的QcachelowmemPRunes617913 有這么多次出現(xiàn)緩存過低的情況Qcachenotcached189896 Qcachefreememory18573912 目前剩余緩存空間Qcachefreeblocks5328這個(gè)數(shù)字似乎有點(diǎn)大 碎片不少Q(mào)cachetotalblocks30953F、結(jié)果表明:querycache值需要設(shè)置的更大一些;G、Qcache_free_blocks,如果該值非常大,則表明緩沖區(qū)中碎片很多H、Qcache_lowmem_prunes的值非常大,則表明經(jīng)常出現(xiàn)緩沖不夠的情況,同時(shí)Qcache_hits的值非常大,則
5、表明查詢緩沖使用非常頻繁,此時(shí)需要增加緩沖大小Qcache_hits的值不大,則表明你的查詢重復(fù)率很低,這種情況下使用查詢緩沖反而會(huì)影響效率,那么可以考慮不用查詢緩沖。此外,在SELECT語句中加入SQL_NO_CACHE可以明確表示不使用查詢緩沖。3TablecacheA、table_cache指定表高速緩存的大小;為所有線程打開表的數(shù)量。增加該值能增加mysql要求的文件描述符的數(shù)量。MySQL對(duì)每個(gè)唯一打開的表需要2個(gè)文件描述符。默認(rèn)數(shù)值是64,我把它改為512。B、每當(dāng)MySQL訪問一個(gè)表時(shí),如果在表緩沖區(qū)中還有空間,該表就被打開并放入其中,這樣可以更快地訪問表內(nèi)容;C、通過檢查
6、峰值時(shí)間的狀態(tài)值Open_tables和Opened_tables,可以決定是否需要增加table_cache的值。如果你發(fā)現(xiàn)open_tables等于table_cache,并且opened_tables在不斷增長,那么你就需要增加table_cache的值了;D、注意,不能盲目地把table_cache設(shè)置成很大的值。如果設(shè)置得太高,可能會(huì)造成文件描述符不足,從而造成性能不穩(wěn)定或者連接失敗。此時(shí)1修改sysctl.conf文件2設(shè)置如下變量為4096或8192前提4G內(nèi)存4Innodbbuffer如果沒開啟innodb就開啟,路徑如:/etc/my.cnf查看my.cnf將#注釋的i
7、nnodb的所有項(xiàng)開啟即可。#ExampleMySQLconfigfileformediumsystems.##Thisisforasystemwithlittlememory(32M-64M)whereMySQLplays#animportantpart,orsystemsupto128MwhereMySQLisusedtogetherwith#otherprograms(suchasawebserver)##MySQLprogr