明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

對(duì)于MySQL 優(yōu)化的一些設(shè)置

[摘要]1.緩存池MySQL的設(shè)計(jì)是通過(guò)緩存池的方式的,也就是說(shuō)將一部分的數(shù)據(jù)都儲(chǔ)存到內(nèi)存中,當(dāng)我們查找一個(gè)數(shù)據(jù)的時(shí)候,如果發(fā)現(xiàn)在緩存池中的時(shí)候,就能夠直接的從緩存中獲取,如果不在的話,那么就去磁盤中加載.所以建議數(shù)據(jù)庫(kù)服務(wù)器采用64位的操作系統(tǒng),這樣就能夠使用很大的內(nèi)存。下面的一些參數(shù)是設(shè)置內(nèi)存池的:S...
1.緩存池

MySQL的設(shè)計(jì)是通過(guò)緩存池的方式的,也就是說(shuō)將一部分的數(shù)據(jù)都儲(chǔ)存到內(nèi)存中,當(dāng)我們查找一個(gè)數(shù)據(jù)的時(shí)候,如果發(fā)現(xiàn)在緩存池中的時(shí)候,就能夠直接的
從緩存中獲取,如果不在的話,那么就去磁盤中加載.所以建議數(shù)據(jù)庫(kù)服務(wù)器采用64位的操作系統(tǒng),這樣就能夠使用很大的內(nèi)存。下面的一些參數(shù)是設(shè)置內(nèi)存池
的:

SHOW VARIABLES LIKE "innodb_buffer_pool_instances"

查看緩存池的個(gè)數(shù),可以通過(guò)globle 或者直接在配置文件中進(jìn)行設(shè)置。

show VARIABLES like "innodb_buffer_pool_size"

查看每個(gè)緩存池的大小,查詢出來(lái)的是字節(jié)。

需要注意,這個(gè)設(shè)置要考慮到自身服務(wù)器的能力.

為了驗(yàn)證緩存的命中率,可以通過(guò)

SHOW ENGINE INNODB STATUS

其中有一行輸出非常重要,可以看出命中率:

Buffer pool hit rate 1000 / 1000

表示的就是緩存的命中率,一般不能低于95%

2.LRU 列表

數(shù)據(jù)中緩存中是通過(guò)LRU的方式儲(chǔ)存中,也就是說(shuō)查詢的最新數(shù)據(jù)是放在最前面的,也就是說(shuō)是熱點(diǎn)數(shù)據(jù),但是這個(gè)LRU算法有一些變種,具體的就是每次

查詢出來(lái)的數(shù)據(jù)并不是插入到最前面的位置,而是插入到中間,這個(gè)位置成為midpoint,默認(rèn)的位置是3/5的位置,這樣做的原因是防止一些掃表的操作將

數(shù)據(jù)全部給刷新出去,有幾個(gè)參數(shù)可以進(jìn)行設(shè)置

SHOW VARIABLES LIKE "innodb_old_blocks_pct"

表示的就是midpoint的位置,默認(rèn)的是:

關(guān)于MySQL 優(yōu)化的一些操作,大概就是3/5吧

還有一個(gè)參數(shù)是

SHOW VARIABLES LIKE "innodb_old_blocks_time"

也就是數(shù)據(jù)插入到midpoint的時(shí)候,需要多久才起效。

如果在真實(shí)的環(huán)境中遇到熱點(diǎn)數(shù)據(jù)比較集中的情況下,可以通過(guò)設(shè)置LRU的參數(shù)來(lái)防止熱點(diǎn)數(shù)據(jù)被刷出

以上就是關(guān)于MySQL 優(yōu)化的一些操作的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。