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即可。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30135314/viewspace-2145110/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30135314/viewspace-2145110/

你可能感兴趣的:(数据库)