溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何理解MySQL中per_thread_buffers優(yōu)化

發(fā)布時(shí)間:2021-11-16 09:11:46 來(lái)源:億速云 閱讀:147 作者:柒染 欄目:MySQL數(shù)據(jù)庫(kù)

如何理解MySQL中per_thread_buffers優(yōu)化,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

 對(duì)于per_thread_buffers,可以理解為Oracle的PGA,為每個(gè)連接到MySQL的用戶進(jìn)程分配的內(nèi)存,包括以下幾個(gè)參數(shù):
1、read_buffer_size
 該參數(shù)用于表的順序描述,表示每個(gè)線程分配的緩沖區(qū)的大小。比如,在進(jìn)行全表掃描時(shí),MySQL會(huì)按照數(shù)據(jù)的存儲(chǔ)順序依次讀取數(shù)據(jù)塊,每次讀取的數(shù)據(jù)塊首先會(huì)暫存在per_thread_buffers中,當(dāng)buffer空間被寫(xiě)滿或者全部數(shù)據(jù)讀取結(jié)束后,再將buffer中的數(shù)據(jù)返回給上層調(diào)用者,以提高效率,默認(rèn)為128KB,一般在128KB-256KB。
2、read_rnd_buffer_size
 該參數(shù)用戶表隨機(jī)讀取,表示每個(gè)線程分配的緩沖區(qū)大小。比如,按照一個(gè)非索引字段做order by排序操作時(shí)候,就會(huì)利用這個(gè)緩沖區(qū)暫存所讀取的數(shù)據(jù)。默認(rèn)為256KB,一般為128KB-256KB。
3、sort_buffer_size
 表在進(jìn)行order by和group by 排序操作時(shí),由于排序的字段沒(méi)有索引,會(huì)出現(xiàn)using filesort,為了提高性能,可用此參數(shù)增加每個(gè)線程分配的緩沖區(qū)大小,默認(rèn)為2MB,不用太大,一般為128KB-256KB。
4、thread_stack
 該參數(shù)表示每個(gè)線程的堆棧大小。默認(rèn)為182KB,64系統(tǒng)設(shè)置為256KB即可。
5、join_buffer_size
 表進(jìn)行join連接操作時(shí),如果關(guān)聯(lián)的字段沒(méi)有索引,會(huì)出現(xiàn)using join buffer,為了提高性能,可用此參數(shù)增加每個(gè)線程分配的緩沖區(qū)大小。默認(rèn)為128KB。一般為128KB-256KB,出現(xiàn)using join buffer時(shí)候要增加索引來(lái)解決。
6、binlog_cache_size
 數(shù)據(jù)庫(kù)中沒(méi)有什么大事務(wù),寫(xiě)入也不是特別頻繁,將其設(shè)置為1-2MB即可,如果有很大的事務(wù),可以適當(dāng)增加這個(gè)緩存值,以獲得更好的性能。
7、max_connections
 最大連接數(shù),默認(rèn)為100,一般設(shè)置為512-1000即可。

關(guān)于如何理解MySQL中per_thread_buffers優(yōu)化問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI