首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tmp_table_size和max_heap_table_size MySQL属性的经验规则

问tmp_table_size和max_heap_table_size MySQL属性的经验规则
EN

Database Administration用户
提问于 2018-06-12 13:38:38
回答 1查看 34.2K关注 0票数 8

标题很大程度上概括了问题本身:对于tmp_table_size和max_heap_table_size MySQL属性的值是否有经验规则?

我经历了严重的性能下降,这是由于MySQL使用磁盘空间来文件连接结果造成的。

将tmp_table_size和max_heap_table_size增加到3G解决了这个问题,但这更像是一种尝试和错误的方法。

是否有更可靠的方法来计算这两者的适当值?

EN

回答 1

Database Administration用户

发布于 2018-06-13 16:59:30

我建议为每个内存提供1%的简单内存。

  • max_heap_table_size是对您CREATE的ENGINE=MEMORY表的限制。没有多少人使用该引擎,如果使用,那么在创建之前设置最大大小。
  • LEAST(max_heap_table_size, tmp_table_size)是允许某些隐式临时表获得多大的上限。这些表在SELECTs ( etc )中用于处理GROUP BY、ORDER BY、子查询等。

由于这些临时表可以由每个连接创建,而且每个查询可能有多个临时表,因此1%的RAM是一个相当“安全”的限制。当MySQL耗尽内存时,操作系统就会交换东西--用MySQL交换性能是很糟糕的。

此外,在设置这些太大,您是从其他用途的内存(例如,buffer_pool),从而潜在地减缓所有查询。

其他经验法则

另见SQL_BIG_RESULT。

票数 7
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/209411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档