MySQL Buffered是MySQL的啟動(dòng)參數(shù)中一個(gè)很重要的參數(shù),對(duì)于MySQL的性能有著很大的影響,下面我們將詳細(xì)介紹什么是MySQL Buffered以及如何配置它。
MySQL Buffered是指MySQL中用來(lái)緩存數(shù)據(jù)和索引數(shù)據(jù)的內(nèi)存單元,這些內(nèi)存單元用來(lái)存儲(chǔ)從磁盤加載的數(shù)據(jù)庫(kù)表和索引的內(nèi)容。緩存大小的設(shè)置建議是磁盤總大小的1/4至1/2,設(shè)置過(guò)小會(huì)導(dǎo)致頻繁的磁盤IO操作,降低MySQL的性能。
// 配置MySQL Buffered的啟動(dòng)參數(shù) innodb_buffer_pool_size=2G myisam_sort_buffer_size=512M key_buffer_size=512M
因?yàn)镸ySQL的緩存機(jī)制,是先把數(shù)據(jù)讀入MySQL的內(nèi)存緩沖區(qū)中,然后再進(jìn)行操作或者返回給客戶端,所以對(duì)于使用MySQL的人來(lái)說(shuō),一個(gè)高效的MySQL緩存是至關(guān)重要的。在MySQL的可選參數(shù)中,很多都關(guān)乎著緩存,比如查詢緩存(query_cache_size)、排序緩存(sort_buffer_size)、游標(biāo)緩存(cursor buffer size)等等,這些參數(shù)都有其默認(rèn)值,可以在修改前先查看。
// 查看MySQL緩存參數(shù) SELECT @@global.query_cache_size; SELECT @@global.sort_buffer_size; SELECT @@global.cursor_buffer_size;
當(dāng)然,MySQL緩存不僅僅限于硬件設(shè)備,還包括MySQL本身的優(yōu)化能力,例如MySQL的查詢優(yōu)化能力。對(duì)于優(yōu)化查詢而言,我們有很多方法可以縮短MySQL的運(yùn)行時(shí)間,提高M(jìn)ySQL的性能。例如,加索引、使用合適的查詢語(yǔ)句、減少查詢次數(shù)等等。