mysql的tmp_table_size和max_heap_table_size
来源:互联网 发布:淘宝合伙开店协议书 编辑:程序博客网 时间:2024/06/05 18:43
先说下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和max_heap_table_size
- mysql的tmp_table_size和max_heap_table_size
- mysql的tmp_table_size和max_heap_table_size
- mysql的tmp_table_size和max_heap_table_size
- mysql的tmp_table_size和max_heap_table_size
- mysql的tmp_table_size和max_heap_table_size
- max_heap_table_size 和 tmp_table_size
- tmp_table_size and max_heap_table_size
- mysql的tmp_table_size的问题
- tmp_table_size 优化 MYSQL
- MySQL - 翻译 - 5.1 Reference Manual参考手册 - 5.1.3 Server System Variables服务器系统变量 - max_heap_table_size
- mysql中的锁和mysql的安全问题
- MySQL:MySQL和SQL Server的区别
- MySQL --- MySQL的定时器和存储过程
- MySQL 和 MySQL.jdbc的下载
- MySQL的备份和恢复
- PHP和MySQL的重新安装
- MySQL和SQLServer的比较
- js学习笔记02
- 理解Fragment生命周期
- 大端模式与小端模式
- 两篇讲解Heap和Clustered Index性能比较较好的文章
- [c.y.j]mybatis choose when otherwise
- mysql的tmp_table_size和max_heap_table_size
- grunt教程
- Effective java8——线程安全级别和延迟初始化
- Hdu 5015 233 Matrix (矩阵乘法)
- linux下生成动态链接库.so
- chart画图的用法
- openstack 手动迁移虚机的过程
- 数据结构之线性表1概括
- matlab读取多张图片