您好,登錄后才能下訂單哦!
如何理解MySQL中per_thread_buffers優化,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
對于per_thread_buffers,可以理解為Oracle的PGA,為每個連接到MySQL的用戶進程分配的內存,包括以下幾個參數:
1、read_buffer_size
該參數用于表的順序描述,表示每個線程分配的緩沖區的大小。比如,在進行全表掃描時,MySQL會按照數據的存儲順序依次讀取數據塊,每次讀取的數據塊首先會暫存在per_thread_buffers中,當buffer空間被寫滿或者全部數據讀取結束后,再將buffer中的數據返回給上層調用者,以提高效率,默認為128KB,一般在128KB-256KB。
2、read_rnd_buffer_size
該參數用戶表隨機讀取,表示每個線程分配的緩沖區大小。比如,按照一個非索引字段做order by排序操作時候,就會利用這個緩沖區暫存所讀取的數據。默認為256KB,一般為128KB-256KB。
3、sort_buffer_size
表在進行order by和group by 排序操作時,由于排序的字段沒有索引,會出現using filesort,為了提高性能,可用此參數增加每個線程分配的緩沖區大小,默認為2MB,不用太大,一般為128KB-256KB。
4、thread_stack
該參數表示每個線程的堆棧大小。默認為182KB,64系統設置為256KB即可。
5、join_buffer_size
表進行join連接操作時,如果關聯的字段沒有索引,會出現using join buffer,為了提高性能,可用此參數增加每個線程分配的緩沖區大小。默認為128KB。一般為128KB-256KB,出現using join buffer時候要增加索引來解決。
6、binlog_cache_size
數據庫中沒有什么大事務,寫入也不是特別頻繁,將其設置為1-2MB即可,如果有很大的事務,可以適當增加這個緩存值,以獲得更好的性能。
7、max_connections
最大連接數,默認為100,一般設置為512-1000即可。
關于如何理解MySQL中per_thread_buffers優化問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。