技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> 无需过分关注Created_tmp_disk_tables

无需过分关注Created_tmp_disk_tables

浏览:2137次  出处信息

    通常地,我们习惯以 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 微秒慢查询补丁

建议继续学习:

  1. WEB系统需要关注的一些点    (阅读:14246)
  2. 30分钟3300%性能提升――python+memcached网页优化小记    (阅读:12223)
  3. 基于SSD的数据库性能优化    (阅读:7486)
  4. jQuery性能优化指南    (阅读:7382)
  5. 一次简单C程序的性能优化    (阅读:5645)
  6. mysql sql 百万级数据库优化方案    (阅读:5117)
  7. PHP最佳实践    (阅读:5073)
  8. 一次神奇的MySQL优化    (阅读:4970)
  9. Linux 64位, MySQL, Swap & Memory 优化    (阅读:4562)
  10. PHP 性能优化技巧-google    (阅读:4521)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1