先说下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是怎样使用内部临时表的?”和“内存存储引擎”

转载于:https://blog.51cto.com/a154154xiocu/560487

mysql的tmp_table_size和max_heap_table_size相关推荐

  1. mysql maxtmptables_mysql的tmp_table_size和max_heap_table_size

    它规定了内部内存临时表的最大值,每个线程都要分配.(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值.)如果内存临时表超出了限制,MySQL就会自动地把它 ...

  2. mysql tmp_table_size_mysql tmp_table_size=256m

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  3. linux mysql tmp_linux下mysql的tmp_table_size改变大小方法

    首先是启动服务.如果是redhat的话,可以使用setup或者ntsysv命令进入服务设置页面后,将mysqld那项选中,然后保存退出.如果不是redhat没有以上工具的话,可以使用chkconfig ...

  4. linux 下安装MySQL

    1. 安装必要的组件 1 2 # yum install –y autoconf automake imake libxml2-devel\ expat-devel cmake gcc gcc-c++ ...

  5. 利用tuning-primer脚本优化MySQL数据库

    脚本下载网址:  http://www.day32.com/MySQL/tuning-primer.sh #!/bin/sh # vim: ts=8 ######################### ...

  6. RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程(转)

    RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程 一.准备工作:SSH,telnet终端中文显示乱码解决办法vi /etc/sysconfig/ ...

  7. mysql 5.6 uf8mb4_MySQL5.7升级到8.0过程详解

    前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从 ...

  8. centos 编译 mysql_Centos编译mysql

    下载源码wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz tar zxvf mysql-5.6.23.tar. ...

  9. 高可用架构篇 MySQL源码编译安装(CentOS-6.6+MySQL-5.6)

    部署环境 操作系统:CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6.26.tar.gz 操作用户:root 系统IP:192.168.1.205 主机 ...

最新文章

  1. Arm架构CPU服务器
  2. IBM超越谷歌抵达量子计算里程碑:研制出50量子位计算机
  3. A Famous Music Composer
  4. uva 1611——Crane
  5. python按行读取文件取消空白行_python去掉空白行的多种实现代码
  6. mingw64 下 java_Win7 64 配置MinGW,以及使用Eclipse
  7. TCP新手误区–数据校验的意义
  8. C语言基础5-预编译部分知识(#include+.h文件和.c文件的区别
  9. JMeter常用的4种参数化方式-操作解析
  10. 徐州计算机应用宿舍,江苏徐州财经高等职业技术学校住宿条件
  11. 关于HTML5页面与手机虚拟键盘的回车的处理
  12. LiveQing云平台直播点播流媒体服务-产品介绍及相关资源
  13. 【CSS3】 CSS3实现“图片阴影”效果
  14. 告诉你怎么编写一个最简单的单片机程序
  15. TL431与PC817光耦在开关电源中的应用
  16. 如何在 HTML 网站上创建其他网页
  17. repmat()函数用法
  18. 露珠谷如何改变了我的生活
  19. 正版授权|Charles 4 网络封包分析调试工具软件
  20. HDU - 3003 - Pupu(快速幂)

热门文章

  1. [Vani有约会]雨天的尾巴 (线段树合并)
  2. Android Studio2.0 教程从入门到精通Windows版
  3. 电磁学讲义2:库仑定律
  4. MFC——AfxParseURL用法
  5. [转]Visual Studio 2010帮助文件MSDN安装说明
  6. 连接php的作用是什么意思,链接是什么?
  7. 2.6 Word2Vec-深度学习第五课《序列模型》-Stanford吴恩达教授
  8. STM32F103/302 SPI3 接口使用例程
  9. Verdi-ug --- nschema Tutorial
  10. 大牛深入浅出讲解C语言#define宏定义应用及使用方法