我是服务器上的MySQL,内存为6GB。我需要知道myisam_sort_buffer_size和sort_buffer_size之间有什么区别?
我有以下尺寸设置:
myisam_sort_buffer_size = 8M
sort_buffer_size = 256M
还请注明这些数值是否正常或需要调整?
由于
答案 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服务器并监视几个小时,你可以很容易地注意到好处