《Mysql实例mysql tmp_table_size和max_heap_table_size大小配置》要点:
本文介绍了Mysql实例mysql tmp_table_size和max_heap_table_size大小配置,希望对您有用。如果有疑问,可以联系我们。
MYSQL学习针对16G内存的配置
MYSQL学习先说下tmp_table_size吧:
MYSQL学习它规定了内部内存临时表的最大值,每个线程都要分配.(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值.)如果内存临时表超越了限制,MySQL就会自动地把它转化为基于磁盘的MyISAM表,存储在指定的tmpdir目录下,默认:
MYSQL学习mysql> show variables like "tmpdir";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| tmpdir | /tmp/ |
+---------------+-------+
MYSQL学习优化查询语句的时候,要避免使用临时表,如果实在避免不了的话,要保证这些临时表是存在内存中的.如果必要的话并且你有很多group by语句,并且你有很多内存,增大tmp_table_size(和max_heap_table_size)的值.这个变量不适用与用户创建的内存表(memory table).
MYSQL学习你可以比拟内部基于磁盘的临时表的总数和创建在内存中的临时表的总数(Created_tmp_disk_tables和Created_tmp_tables),一般的比例关系是:
MYSQL学习Created_tmp_disk_tables/Created_tmp_tables<5%
MYSQL学习max_heap_table_size
MYSQL学习这个变量定义了用户可以创立的内存表(memory table)的大小.这个值用来计算内存表的最大行数值.这个变量支持动态改变,即set @max_heap_table_size=#
MYSQL学习,但是对于已经存在的内存表就没有什么用了,除非这个表被重新创立(create table)或者修改(alter table)或者truncate table.服务重启也会设置已经存在的内存表为全局max_heap_table_size的值.
MYSQL学习这个变量和tmp_table_size一起限制了内部内存表的年夜小.
MYSQL学习如果想知道更详细的信息,请参考“MySQL是怎样使用内部暂时表的?”和“内存存储引擎”
维易PHP培训学院每天发布《Mysql实例mysql tmp_table_size和max_heap_table_size大小配置》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。