10

我正在按照这个问题的答案中给出的建议优化我的临时数据: 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;
4

1 回答 1

14

在一般情况下不可能回答您的问题。这实际上取决于您的查询的配置文件。检查手册,了解他们的目的,正如他们所说的那样:

( sort_buffer_size )

将其设置为大于全局所需的值会减慢大多数排序查询。最好将其作为会话设置增加,并且仅用于需要更大大小的会话。在 Linux 上,有 256KB 和 2MB 的阈值,较大的值可能会显着减慢内存分配 (...)。尝试为您的工作量找到最佳价值。

( join_buffer_size )

将缓冲区设置为大于容纳每个匹配行所需的大小没有任何好处,并且所有连接都至少分配最小大小,因此在全局将此变量设置为较大的值时要小心。最好保持全局设置较小,仅在进行大型连接的会话中更改为较大的设置。如果全局大小大于大多数使用它的查询所需的内存分配时间,则可能会导致性能大幅下降。

于 2013-07-29T23:44:53.833 回答