我正在根据这个问题的答案给出的建议来优化我的临时数据: Mysql tmp_table_size max_heap_table_size
mysql中join_buffer_size
和sort_buffer_size
的推荐值是什么?
我的实际价值是:
join_buffer_size: 128 Kio;
sort buffer size: 512 Kio;
答案 0 :(得分:11)
在一般情况下,无法回答您的问题。这实际上取决于您的查询的配置文件。检查手册,了解他们的目的,并且他们说得很好:
将其设置为大于全局要求将减慢大多数排序的查询。最好将其作为会话设置增加,并且仅适用于需要更大尺寸的会话。在Linux上,存在256KB和2MB的阈值,其中较大的值可能显着减慢存储器分配(...)。尝试为您的工作量找到最佳价值。
设置缓冲区大于保存每个匹配行所需的增益没有任何好处,并且所有连接至少分配最小大小,因此在全局设置此变量时要小心。最好保持全局设置较小,仅在进行大型连接的会话中更改为更大的设置。如果全局大小大于使用它的大多数查询所需的内存分配时间,则会导致性能大幅下降。