myisam_sort_buffer_size vs sort_buffer_size

时间:2011-10-24 03:22:58

标签: mysql sorting buffer

我是服务器上的MySQL,内存为6GB。我需要知道myisam_sort_buffer_size和sort_buffer_size之间有什么区别?

我有以下尺寸设置:

myisam_sort_buffer_size = 8M

sort_buffer_size = 256M

还请注明这些数值是否正常或需要调整?

由于

3 个答案:

答案 0 :(得分:11)

<强> sort_buffer_size的值:

MySQL文档:

  

每个需要进行排序的会话都会分配这个大小的缓冲区。 sort_buffer_size并非特定于任何存储引擎,而是以一般方式应用于优化。

您的sort_buffer_size值似乎非常高。默认值为2M。我建议不要大于此,因为要求更高的性能惩罚。 Some people recommend smaller values,例如256kB。要记住的一件事是这是每个客户端会话,它不是一个全球价值。较大的值会快速累加。

<强> myisam_sort_buffer_size:

MySQL文档:

  

在REPAIR TABLE期间或使用CREATE INDEX或ALTER TABLE创建索引时分配MyISAM索引时分配的缓冲区大小。

您的myisam_sort_buffer_size似乎没问题。除非您使用ALTER TABLE或REPAIR TABLE等重建索引,否则这将不相关。

答案 1 :(得分:1)

这些参数是每个线程,因此请查看max_connections的数量。

即。使用15GB的RAM

max_connections        = 1500
sort_buffer_size = 32M

我正在收到mysqltuner警告:

 [--] Total buffers: 928.0M global + 32.7M per thread (1500 max threads)
 [!!] Maximum possible memory usage: 48.8G (312% of installed RAM)

所以我把它降低到了默认值。

答案 2 :(得分:0)

sort_buffer_size = 256K  是最好的。你试试这个并重新启动mysql服务器并监视几个小时,你可以很容易地注意到好处