mysqltmp_table_size和max_heap_table_size大小配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysqltmp_table_size和max_heap_table_size大小配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1412字,纯文字阅读大概需要3分钟。
内容图文
![mysqltmp_table_size和max_heap_table_size大小配置](/upload/InfoBanner/zyjiaocheng/584/f5a5cdb3e11a4f22b9f323e6883caac4.jpg)
针对16G内存的配置
tmp_table_size = 64M
先说下tmp_table_size吧:
它规定了内部内存临时表的最大值,每个线程都要分配。(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值。)如果内存临时表超出了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下,默认:
mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp/ |
+---------------+-------+
优化查询语句的时候,要避免使用临时表,如果实在避免不了的话,要保证这些临时表是存在内存中的。如果需要的话并且你有很多group by语句,并且你有很多内存,增大tmp_table_size(和max_heap_table_size)的值。这个变量不适用与用户创建的内存表(memory table).
你可以比较内部基于磁盘的临时表的总数和创建在内存中的临时表的总数(Created_tmp_disk_tables和Created_tmp_tables),一般的比例关系是:
Created_tmp_disk_tables/Created_tmp_tables<5%
max_heap_table_size
这个变量定义了用户可以创建的内存表(memory table)的大小.这个值用来计算内存表的最大行数值。这个变量支持动态改变,即set @max_heap_table_size=#
,但是对于已经存在的内存表就没有什么用了,除非这个表被重新创建(create table)或者修改(alter table)或者truncate table。服务重启也会设置已经存在的内存表为全局max_heap_table_size的值。
这个变量和tmp_table_size一起限制了内部内存表的大小。
如果想知道更详细的信息,请参考“MySQL是怎样使用内部临时表的?”和“内存存储引擎”
您可能感兴趣的文章:
- mysql tmp_table_size优化之设置多大合适
内容总结
以上是互联网集市为您收集整理的mysqltmp_table_size和max_heap_table_size大小配置全部内容,希望文章能够帮你解决mysqltmp_table_size和max_heap_table_size大小配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。