文档章节

无需过分关注Created_tmp_disk_tables

叶金荣
 叶金荣
发布于 2017/04/13 13:22
字数 497
阅读 10
收藏 0
作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
通常地,我们习惯以 Created_tmp_tables/(Created_tmp_disk_tables + Created_tmp_tables) 或者已各自的一个时段内的差额计算,来判断基于内存的临时表利用率。所以,我们会比较关注 Created_tmp_disk_tables 是否过多,从而认定当前服务器运行状况的优劣。
而事实上,我们并没有必要太过分的关注 Created_tmp_disk_tables,因为通过上面的公式,并不能真正反映到mysql里临时表的利用率。通过打上percona的补丁后,我们就可以查看到每个slow query的执行计划了,也就知道了其实很多情况下都创建了 tmp_disk_table,而我们并不需要担心,例如之前我写过的 [深入理解MySQL系列] - mysqldump的几个主要选项探究。可以看到,在调用mysqldump备份数据时,大概执行步骤如下:
081022 17:39:33       7 Connect     root@localhost on
7 Query       /*!40100 SET @@SQL_MODE='' */
7 Init DB     yejr
7 Query       SHOW TABLES LIKE 'yejr'
7 Query       LOCK TABLES `yejr` READ /*!32311 LOCAL */
7 Query       SET OPTION SQL_QUOTE_SHOW_CREATE=1
7 Query       show create table `yejr`
7 Query       show fields from `yejr`
7 Query       show table status like 'yejr'
7 Query       SELECT /*!40001 SQL_NO_CACHE */ * FROM `yejr`
7 Query       UNLOCK TABLES
7 Quit
其中,有一步是: show fields from `yejr`。从slow query记录的执行计划中,可以知道它也产生了 Tmp_table_on_disk。
另外,例如 show [global] status 也是会创建 Tmp_table_on_disk 的。
从上面的分析来看,有些情况下产生的 Tmp_table_on_disk 我们完全不用担心,因此没必要过分关注 Created_tmp_disk_tables,但如果它的值大的离谱的话,那就好好查一下,你的服务器到底都在执行什么查询了。
关于percona微秒查询补丁的介绍可以看这里: MySQL 微秒慢查询补丁
本文出自 “MySQL中文网”博客 http://www.imysql.cn/

本文出自 “老叶茶馆” 博客,转载请与作者联系!

本文转载自:http://imysql.blog.51cto.com/1540006/308966

叶金荣

叶金荣

粉丝 95
博文 259
码字总数 0
作品 0
福州
数据库管理员
私信 提问
Python实现MySQL状态监控

#! /usr/bin/python # -- encoding: utf8 -- #from future import division import sys import MySQLdb # 数据库配置参数 host = '192.168.20.235' user = 'root' password = 'root' db = '......

wujunqi1996
2018/07/16
0
0
mysql的tmp_table_size和max_heap_table_size

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

stone_ryan
2018/06/26
0
0
mysql状态查看 QPS/TPS/缓存命中率查看

运行中的mysql状态查看 对正在运行的mysql进行监控,其中一个方式就是查看mysql运行状态。 (1)QPS(每秒Query量) QPS = Questions(or Queries) / uptime mysql > show global status like 'Q...

吕兵阳
2016/02/11
76
0
mySQL优化 my.ini 配置说明

[mysqld] port = 3306 serverid = 1 socket = /tmp/mysql.sock skip-name-resolve 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选...

zhubaojie
2018/07/04
0
0
SHOW PROCESSLIST 命令详解 (查看锁表)

SHOW PROCESSLIST显示哪些线程正在运行。 show processlist;只列出前100条,如果想全列出请使用show full processlist; 您也可以使用mysqladmin processlist语句得到此信息。 如果您有SUPER...

洋哥6
2016/06/03
2.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL8.0.17 - Multi-Valued Indexes 简述

本文主要简单介绍下8.0.17新引入的功能multi-valued index, 顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持 (感觉官方未来一定...

阿里云官方博客
21分钟前
3
0
make4.1降级 make-3.81、2错误

在编译 make-3.82 的时候出现如下错误提示 glob/glob.c:xxx: undefined reference to `__alloca'` 修改 /glob/glob.c // #if !defined __alloca && !defined __GNU_LIBRARY__ # ifdef __GNUC......

Domineering
22分钟前
1
0
Rainbond集群的安装和运维的原理

本文将解读Rainbond集群的安装和运维的原理,使用户基本了解Rainbond的安装机制和运维重点,便于用户搭建大型Rainbond集群。 1.Rainbond集群节点概述 1.1 节点分类 属性 类型 说明 manage 管...

好雨云帮
34分钟前
3
0
好程序员大数据学习路线分享UDF函数

1.为什么需要UDF? 1)、因为内部函数没法满足需求。 2)、hive它本身就是一个灵活框架,允许用自定义模块功能,如可以自定义UDF、serde、输入输出等。 2.UDF是什么? UDF:user difine fun...

好程序员官方
36分钟前
3
0
Groovy中 Base64 URL和文件名安全编码

Base64 URL和文件名安全编码 Groovy支持Base64编码很长一段时间。 从Groovy 2.5.0开始,我们还可以使用Base64 URL和Filename Safe编码来使用encodeBase64Url方法对字节数组进行编码。 结果是...

白石
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部