mysql的tmp_table_size和max_heap_table_size
先说下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相关推荐
- mysql maxtmptables_mysql的tmp_table_size和max_heap_table_size
它规定了内部内存临时表的最大值,每个线程都要分配.(实际起限制作用的是tmp_table_size和max_heap_table_size的最小值.)如果内存临时表超出了限制,MySQL就会自动地把它 ...
- mysql tmp_table_size_mysql tmp_table_size=256m
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- linux mysql tmp_linux下mysql的tmp_table_size改变大小方法
首先是启动服务.如果是redhat的话,可以使用setup或者ntsysv命令进入服务设置页面后,将mysqld那项选中,然后保存退出.如果不是redhat没有以上工具的话,可以使用chkconfig ...
- linux 下安装MySQL
1. 安装必要的组件 1 2 # yum install –y autoconf automake imake libxml2-devel\ expat-devel cmake gcc gcc-c++ ...
- 利用tuning-primer脚本优化MySQL数据库
脚本下载网址: http://www.day32.com/MySQL/tuning-primer.sh #!/bin/sh # vim: ts=8 ######################### ...
- RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程(转)
RHEL5(CentOS)下nginx+php+mysql+tomcat+memchached配置全过程 一.准备工作:SSH,telnet终端中文显示乱码解决办法vi /etc/sysconfig/ ...
- mysql 5.6 uf8mb4_MySQL5.7升级到8.0过程详解
前言: 不知不觉,MySQL8.0已经发布好多个GA小版本了.目前互联网上也有很多关于MySQL8.0的内容了,MySQL8.0版本基本已到稳定期,相信很多小伙伴已经在接触8.0了.本篇文章主要介绍从 ...
- 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. ...
- 高可用架构篇 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 主机 ...
最新文章
- 智办事:高效远程办公指南
- 四种类型的数据分析模式
- PMCAFF“音乐+社交”产品马拉松大赛圆满结束,10支队伍大放异彩
- libvirt vnc花屏_centos6.5下VNC花屏解决方法
- Java:在Runnable中处理RuntimeException
- WebStorm学习笔记003---前端脚手架
- 文献管理三剑客之noteexpress endnote 资源和论文的搬迁备份
- UVA 11624 BFS
- 射线法判断点在多边形内适用范围_重庆球墨铸铁X射线实时成像实时成像系统真诚合作_丹东华日电气...
- 金蝶旗舰版固定资产计提折旧报错‘费用分配表所引用的*是非明细的核算项目’,如何解决?
- thinkphp集成系列之阿里云oss
- matlab处理声音报告,基于MATLAB的语音信号分析与处理的实验报告.doc
- Mendix助力工业数字化 :“智能制造百家讲堂”问题回顾
- GPU/CPU性能天梯图
- 安装python发生的报错
- 安装Alpine操作系统
- 高德地图在打包apk后部分页面无法正常定位解决办法
- biti's blog
- 2019CVPR有关对抗样本的论文总结(防御篇一)
- 《计算机系统与维护》— 计算机硬件的组成