如何理解MySQL中per_thread_buffers优化

网友投稿 98 2023-12-27

如何理解MySQL中per_thread_buffers优化

如何理解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优化问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Amazon RDS不支持的MariaDB功能有哪些
下一篇:如何进行MySQL metadata锁实验
相关文章

 发表评论

暂时没有评论,来抢沙发吧~