SlideShare a Scribd company logo
1 of 5
Download to read offline
Mysql 性能分析之临时表 
1    临时表与磁盘临时表 ............................................................................................................... 1 
2    磁盘临时表的产生 ................................................................................................................... 1 
3    临时表状态监控 ....................................................................................................................... 2 
     3.1  主要指标 ....................................................................................................................... 2 
     3.2  监控方法 ....................................................................................................................... 3 
4    案例分析  .................................................................................................................................. 4 
           .
 
 



1 临时表与磁盘临时表 
 
临时文件大家都不陌生,就是为了各种不同的目的,产生的中间文件。使用完毕后会被及时




                                                                                           s
的回收和清理。临时表也是如此,它是 mysql 在进行一些内部操作的时候生成的数据库表。
这些操作主要包括,group by, distinct,一些 order by  查询语句,UNION,一些 from 语句中
的子查询(derived tables)等。例如: 
 使用了 order by 子句和一个不同的 group by 子句,或者 order by(或 group by)包含了
                                                                         lu
                                                        ha
  JOIN queue 上非第一个表中的列,临时表将被创建。 
 使用了 SQL_SMALL_RESULT 选项,mysql 会使用 in‐memory 临时表 
 DISTINCT 和 order by 一起使用可能会用到临时表 
                                  p

 
可以使用 EXPLAIN 来分析查询语句,看看是否会用到临时表。EXPLAIN 输出中的 EXTRA 列会
                               ce


指明是否“Using temporary”  。 
事实上,大多数用户都不会去关注临时表的产生、使用与消亡的过程,因为它对用户是透明
的。但是对于数据库管理员或者其他关心性能的人员而言,临时表就不得不引起注意,因为
              bu



如果设置不当或者是程序使用不当,            可能会产生大量的磁盘临时表,      对系统性能产生很大的
影响。 
什么是磁盘临时表呢? 
除了会直接产生磁盘临时表外,            大量磁盘临时表是由内存临时表转化来的。       临时表是存在于
内存中,由 MEMORY 引擎进行处理,速度较快。而磁盘临时表则是在磁盘上创建、使用、
销毁的。由于磁盘是慢速访问设备,因此,磁盘临时表的操作效率要比临时表的操作差了几
个数量级,具有较差的性能。因此,我们需要尽量避免磁盘临时表的产生。 



2 磁盘临时表的产生 
在使用中,有些时候是不能使用 MEMORY 临时表的,而不得不使用 MyISAM 引擎来处理临
时表: 
 列中含有 BLOB 或 TEXT 字段 
  如果查询中包含 BLOB 或者 TEXT 列,临时表将直接被生成为 MyISAM 表,因为这种类


Author: beiyu95 msn:beiyu95@hotmail.com 
型的列不能存储在 Memory 表中。 
    值得注意的是,一些设计上的问题可能会导致内存临时表的大小比想象中的大得多,
    Memory 表总是使用固定长度的列,因此,假如 varchar(255)类型的列中只存储了 y,n 这
    样的值,而在内存中占有的大小依然是 255,如果是 utf8 编码,就是 255*3  。这也是
    为什么要避免使用不必要的长度来存储内容的重要原因。 
 ORDER BY  或  DISTINCT 中出现了大于 512bytes 的列 
 在使用 UNION(ALL)的情况下,SELECT 子句中出现了大于 512byte 的列 
另外,当创建的 MEMORY 临时表过大时,将被转换为 MyISAM 表,并且存储在磁盘上。系
统参数 max_heap_table_size 决定了 MEMORY 表大小的上限,适用于所有的内存表,包括使
用 CREATE  TABLE 创建的表。但是,对于内部临时 MEMORY 表而言,其大小还有受限于
tmp_table_size。也就是说,  内存临时表的上限实际上是 max_heap_table_size 和 tmp_table_size
二者中的最小值。当 MEMORY 表大小超过最大值时,将被自动转换为存储在磁盘上的磁盘
临时表,使用 MyISAM 引擎进行处理。 
从 mysql 的临时文件夹中可以查看是否会产生磁盘临时表,磁盘临时表是以#开头的文件。
下面是每秒一次产生的一段查看快照: 




                                                s
                                            lu
                          p                ha
                       ce
           bu




                                                            
 



3 临时表状态监控 

3.1 主要指标	

在性能测试的过程中,临时磁盘表的大量产生会造成较多的 IO,使系统性能大幅下降。和
磁盘临时表相关的主要参数有: 
 MAX_HEAP_TABLE_SIZE 
  MEMORY 表大小的最大值,通过这个值来计算 MEMORY 表的最大行数 
 MAX_TMP_TABLES 

Author: beiyu95 msn:beiyu95@hotmail.com 
一个客户端同时打开的临时表个数限制 
 TMP_TABLE_SIZE 
  临时表的最大值。超过了这个值,内存中的 MEMORY 表将被自动转换为磁盘上的
  MyISAM 表。 
 CREATED_TMP_DISK_TABLES 
  创建的磁盘临时表的个数。 
 CREATED_TMP_TABLES 
  创建的内存临时表的个数 
下面是一次性能测试过程中,对临时表性能监控的快照。 
 
在性能测试的过程中是通过 100*(磁盘临时表个数/(磁盘临时表个数+内存临时表个数)),
也就是磁盘临时表占临时表的比例来衡量这个指标的健康程度的。 


3.2 监控方法	

在测试过程中,可以通过 show status 命令的输出来查看临时表的状态变量,可以通过 show 




                                                   s
variables 来查看系统参数的设置。 
如果想观察一段时间内指标的变化,可以借助脚本或者第三方工具来进行查看。Mysql 
manager 就是一个不错的开源工具,它提供了丰富的管理、监控功能。通过它我们可以方便
的查看状态变量、系统参数,还可以进行自定义图表,通过定义自己的公式来添加关心的指
                                            lu
                                           ha
标。 
                          p
                       ce
           bu




                                                             
官方下载地址:http://dev.mysql.com/downloads/gui‐tools/5.0.html 




Author: beiyu95 msn:beiyu95@hotmail.com 
4 案例分析 
在维护模块客户报表批量下载功能的测试中,发现 max_heap_table_size 的值为 32M,而
tmp_table_size 的值为 512M。有大量的磁盘临时表产生。 




                                                s
                                            lu
                                           ha
                                                              
根 据 前 面 的 分 析 , 可 能 会 是 由 于 max_heap_table_size 参 数 过 小 导 致 。 于 是 将
max_heap_table_size 的值调整为 512M。挑选同一个任务,进行测试,同一个任务调整前后
磁盘临时表的比率分别在 90%和 10%。         说明参数的调整大大减少了磁盘临时表的产生,             提高
                          p

了操作效率。 
                       ce


优化前后对比如下: 
           bu




                                                                   
通过提高该参数的值,可以解决大量磁盘临时表的问题,但是应当注意的有两点: 
1. 参数设置只是一部分,   相当一部分磁盘表的产生是由与 SQL 和数据库的不合理设计造成
   的,比如含有 TEXT 字段,这也是我们进行优化和问题分析的重点。 
2. 不能盲目调大临时表的参数,因为内存是有限的,需要从全局来考虑。对参数的调整要
   进行系统的测试,以获得整体性能的提升。 
 
 

Author: beiyu95 msn:beiyu95@hotmail.com 
s
                                            lu       
                                           ha
 
                          p
                       ce
           bu




Author: beiyu95 msn:beiyu95@hotmail.com 

More Related Content

What's hot

MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220Jinrong Ye
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410maclean liu
 
【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 zmaclean liu
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuningted-xu
 
罗立刚 高性能模糊查询内存数据库Ems
罗立刚 高性能模糊查询内存数据库Ems罗立刚 高性能模糊查询内存数据库Ems
罗立刚 高性能模糊查询内存数据库Emsgettyying
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dbamaclean liu
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocketpwesh
 
大型Sql server zero down time 解決方案
大型Sql server zero down time 解決方案大型Sql server zero down time 解決方案
大型Sql server zero down time 解決方案Rico Chen
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storageted-xu
 
Intorduction to the cbo optimizer
Intorduction to the cbo optimizerIntorduction to the cbo optimizer
Intorduction to the cbo optimizerZhaoyang Wang
 
MySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APIMySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APILixun Peng
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定Chien Chung Shen
 

What's hot (16)

MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220MySQL 6.0 下的cluster + replicate - 20080220
MySQL 6.0 下的cluster + replicate - 20080220
 
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
【Maclean liu技术分享】开oracle调优鹰眼,深入理解awr性能报告 第二讲 正式版 20130410
 
【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z【Ask maclean技术分享】oracle dba技能列表 z
【Ask maclean技术分享】oracle dba技能列表 z
 
Mysql集群
Mysql集群Mysql集群
Mysql集群
 
12, OCP - performance tuning
12, OCP - performance tuning12, OCP - performance tuning
12, OCP - performance tuning
 
罗立刚 高性能模糊查询内存数据库Ems
罗立刚 高性能模糊查询内存数据库Ems罗立刚 高性能模糊查询内存数据库Ems
罗立刚 高性能模糊查询内存数据库Ems
 
Oracle Tablespace介紹
Oracle Tablespace介紹Oracle Tablespace介紹
Oracle Tablespace介紹
 
Essential oracle security internal for dba
Essential oracle security internal for dbaEssential oracle security internal for dba
Essential oracle security internal for dba
 
Mysql handlersocket
Mysql handlersocketMysql handlersocket
Mysql handlersocket
 
大型Sql server zero down time 解決方案
大型Sql server zero down time 解決方案大型Sql server zero down time 解決方案
大型Sql server zero down time 解決方案
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
5, OCP - oracle storage
5, OCP - oracle storage5, OCP - oracle storage
5, OCP - oracle storage
 
8
88
8
 
Intorduction to the cbo optimizer
Intorduction to the cbo optimizerIntorduction to the cbo optimizer
Intorduction to the cbo optimizer
 
MySQL源码分析.02.Handler API
MySQL源码分析.02.Handler APIMySQL源码分析.02.Handler API
MySQL源码分析.02.Handler API
 
Oracle使用者安全設定
Oracle使用者安全設定Oracle使用者安全設定
Oracle使用者安全設定
 

Viewers also liked

The Kingdoms Of Southeast Asia And Korea
The Kingdoms Of Southeast Asia And KoreaThe Kingdoms Of Southeast Asia And Korea
The Kingdoms Of Southeast Asia And KoreaGlobal_FMC
 
powerpt global Southeast Asia and Korea Regnier
powerpt global Southeast Asia and Korea Regnierpowerpt global Southeast Asia and Korea Regnier
powerpt global Southeast Asia and Korea Regnierguestdf8335
 
Althea, Diana, Stacey, and Saveliy's Korea Presentation
Althea, Diana, Stacey, and Saveliy's Korea PresentationAlthea, Diana, Stacey, and Saveliy's Korea Presentation
Althea, Diana, Stacey, and Saveliy's Korea Presentationguest381714
 
Sea ancient period
Sea ancient periodSea ancient period
Sea ancient periodnikkibarts16
 
Kingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And KoreaKingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And Koreaguest485fe4
 
Kinddoms Of Southeast Asia And Korea
Kinddoms Of  Southeast  Asia And  Korea Kinddoms Of  Southeast  Asia And  Korea
Kinddoms Of Southeast Asia And Korea guestf0fd4b
 
Southeast Asia And Korea
Southeast Asia And KoreaSoutheast Asia And Korea
Southeast Asia And Koreaxslickestgroupx
 
Global Powerpoint Project Kingdoms Of Southeast Asia And Korea[3]
Global Powerpoint Project  Kingdoms Of Southeast Asia And Korea[3]Global Powerpoint Project  Kingdoms Of Southeast Asia And Korea[3]
Global Powerpoint Project Kingdoms Of Southeast Asia And Korea[3]igutierrez
 
12.5 kingdoms of southeast asia and korea
12.5 kingdoms of southeast asia and korea12.5 kingdoms of southeast asia and korea
12.5 kingdoms of southeast asia and koreaBrighton Alternative
 
Lwd ppt
Lwd pptLwd ppt
Lwd pptlwd7
 
Southeast Asia Geography
Southeast Asia GeographySoutheast Asia Geography
Southeast Asia GeographyChris Calvert
 
Kingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And KoreaKingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And Koreaguest2a5c65
 

Viewers also liked (14)

The Kingdoms Of Southeast Asia And Korea
The Kingdoms Of Southeast Asia And KoreaThe Kingdoms Of Southeast Asia And Korea
The Kingdoms Of Southeast Asia And Korea
 
powerpt global Southeast Asia and Korea Regnier
powerpt global Southeast Asia and Korea Regnierpowerpt global Southeast Asia and Korea Regnier
powerpt global Southeast Asia and Korea Regnier
 
Althea, Diana, Stacey, and Saveliy's Korea Presentation
Althea, Diana, Stacey, and Saveliy's Korea PresentationAlthea, Diana, Stacey, and Saveliy's Korea Presentation
Althea, Diana, Stacey, and Saveliy's Korea Presentation
 
Sea ancient period
Sea ancient periodSea ancient period
Sea ancient period
 
Kingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And KoreaKingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And Korea
 
Kinddoms Of Southeast Asia And Korea
Kinddoms Of  Southeast  Asia And  Korea Kinddoms Of  Southeast  Asia And  Korea
Kinddoms Of Southeast Asia And Korea
 
Southeast Asia And Korea
Southeast Asia And KoreaSoutheast Asia And Korea
Southeast Asia And Korea
 
2.cultural southeastasia
2.cultural southeastasia2.cultural southeastasia
2.cultural southeastasia
 
12.2 the mongol conquests
12.2 the mongol conquests12.2 the mongol conquests
12.2 the mongol conquests
 
Global Powerpoint Project Kingdoms Of Southeast Asia And Korea[3]
Global Powerpoint Project  Kingdoms Of Southeast Asia And Korea[3]Global Powerpoint Project  Kingdoms Of Southeast Asia And Korea[3]
Global Powerpoint Project Kingdoms Of Southeast Asia And Korea[3]
 
12.5 kingdoms of southeast asia and korea
12.5 kingdoms of southeast asia and korea12.5 kingdoms of southeast asia and korea
12.5 kingdoms of southeast asia and korea
 
Lwd ppt
Lwd pptLwd ppt
Lwd ppt
 
Southeast Asia Geography
Southeast Asia GeographySoutheast Asia Geography
Southeast Asia Geography
 
Kingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And KoreaKingdoms Of Southeast Asia And Korea
Kingdoms Of Southeast Asia And Korea
 

Similar to Mysql性能分析之临时表(共享)

数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试helbreathszw
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)yiditushe
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten TrainingLi Chen
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结beiyu95
 
Mnesia用户手册
Mnesia用户手册Mnesia用户手册
Mnesia用户手册shu beta
 
Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期yiditushe
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert systemted-xu
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 maclean liu
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇小新 制造
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture introted-xu
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江thinkinlamp
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysqlpwesh
 
Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4hans511002
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案Louis liu
 
Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1小新 制造
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器Leyi (Kamus) Zhang
 
Web性能测试指标参考v0.2
Web性能测试指标参考v0.2Web性能测试指标参考v0.2
Web性能测试指标参考v0.2beiyu95
 
Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例maclean liu
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
Mysql调优
Mysql调优Mysql调优
Mysql调优ken shin
 

Similar to Mysql性能分析之临时表(共享) (20)

数据库极限性能测试
数据库极限性能测试数据库极限性能测试
数据库极限性能测试
 
Itpub电子杂志(第五期)
Itpub电子杂志(第五期)Itpub电子杂志(第五期)
Itpub电子杂志(第五期)
 
Times Ten Training
Times Ten TrainingTimes Ten Training
Times Ten Training
 
一次Web性能测试小结
一次Web性能测试小结一次Web性能测试小结
一次Web性能测试小结
 
Mnesia用户手册
Mnesia用户手册Mnesia用户手册
Mnesia用户手册
 
Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期Csdn Emag(Oracle)第二期
Csdn Emag(Oracle)第二期
 
11, OCP - awr & alert system
11, OCP - awr & alert system11, OCP - awr & alert system
11, OCP - awr & alert system
 
诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础 诗檀软件 Oracle开发优化基础
诗檀软件 Oracle开发优化基础
 
Altibase管理培训 管理篇
Altibase管理培训 管理篇Altibase管理培训 管理篇
Altibase管理培训 管理篇
 
1, OCP - architecture intro
1, OCP - architecture intro1, OCP - architecture intro
1, OCP - architecture intro
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
 
Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4Glibc内存管理ptmalloc源代码分析4
Glibc内存管理ptmalloc源代码分析4
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
 
Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1Altibase管理培训 优化篇 v1.1
Altibase管理培训 优化篇 v1.1
 
数据库性能诊断的七种武器
数据库性能诊断的七种武器数据库性能诊断的七种武器
数据库性能诊断的七种武器
 
Web性能测试指标参考v0.2
Web性能测试指标参考v0.2Web性能测试指标参考v0.2
Web性能测试指标参考v0.2
 
Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例Sql调优clustering factor影响数据删除速度一例
Sql调优clustering factor影响数据删除速度一例
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
Mysql调优
Mysql调优Mysql调优
Mysql调优
 

Recently uploaded

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxmekosin001123
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,Xin Yun Teo
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...黑客 接单【TG/微信qoqoqdqd】
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书kathrynalvarez364
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单jakepaige317
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书kathrynalvarez364
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxmekosin001123
 
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单kathrynalvarez364
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxmekosin001123
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制jakepaige317
 

Recently uploaded (10)

EDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptxEDUC6506_ClassPresentation_TC330277 (1).pptx
EDUC6506_ClassPresentation_TC330277 (1).pptx
 
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
中国文学, 了解王安石变法,熙宁变法,熙盛变法- 中国古代改革的类型- 富国强兵,
 
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
1.🎉“入侵大学入学考试中心修改成绩”来袭!ALEVEL替考大揭秘,轻松搞定考试成绩! 💥你还在为无法进入大学招生系统而烦恼吗?想知道如何通过技术手段更改...
 
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
布莱德福德大学毕业证制作/英国本科学历如何认证/购买一个假的香港中文大学专业进修学院硕士学位证书
 
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
日本九州齿科大学毕业证制作🚩定制本科卒业证书🚩哪里可以购买假美国西南基督复临安息日会大学成绩单
 
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
澳洲圣母大学毕业证制作/加拿大硕士学历代办/购买一个假的中央警察大学硕士学位证书
 
educ6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptxeduc6506presentationtc3302771-240427173057-06a46de5.pptx
educ6506presentationtc3302771-240427173057-06a46de5.pptx
 
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
日本姫路独协大学毕业证制作/修士学位记多少钱/哪里可以购买假美国圣何塞州立大学成绩单
 
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptxEDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
EDUC6506(001)_ClassPresentation_2_TC330277 (1).pptx
 
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
哪里可以购买日本筑波学院大学学位记/做个假的文凭可认证吗/仿制日本大学毕业证/意大利语CELI证书定制
 

Mysql性能分析之临时表(共享)

  • 1. Mysql 性能分析之临时表  1  临时表与磁盘临时表 ............................................................................................................... 1  2  磁盘临时表的产生 ................................................................................................................... 1  3  临时表状态监控 ....................................................................................................................... 2  3.1  主要指标 ....................................................................................................................... 2  3.2  监控方法 ....................................................................................................................... 3  4  案例分析  .................................................................................................................................. 4  .     1 临时表与磁盘临时表    临时文件大家都不陌生,就是为了各种不同的目的,产生的中间文件。使用完毕后会被及时 s 的回收和清理。临时表也是如此,它是 mysql 在进行一些内部操作的时候生成的数据库表。 这些操作主要包括,group by, distinct,一些 order by  查询语句,UNION,一些 from 语句中 的子查询(derived tables)等。例如:   使用了 order by 子句和一个不同的 group by 子句,或者 order by(或 group by)包含了 lu ha JOIN queue 上非第一个表中的列,临时表将被创建。   使用了 SQL_SMALL_RESULT 选项,mysql 会使用 in‐memory 临时表   DISTINCT 和 order by 一起使用可能会用到临时表  p   可以使用 EXPLAIN 来分析查询语句,看看是否会用到临时表。EXPLAIN 输出中的 EXTRA 列会 ce 指明是否“Using temporary” 。  事实上,大多数用户都不会去关注临时表的产生、使用与消亡的过程,因为它对用户是透明 的。但是对于数据库管理员或者其他关心性能的人员而言,临时表就不得不引起注意,因为 bu 如果设置不当或者是程序使用不当, 可能会产生大量的磁盘临时表, 对系统性能产生很大的 影响。  什么是磁盘临时表呢?  除了会直接产生磁盘临时表外, 大量磁盘临时表是由内存临时表转化来的。 临时表是存在于 内存中,由 MEMORY 引擎进行处理,速度较快。而磁盘临时表则是在磁盘上创建、使用、 销毁的。由于磁盘是慢速访问设备,因此,磁盘临时表的操作效率要比临时表的操作差了几 个数量级,具有较差的性能。因此,我们需要尽量避免磁盘临时表的产生。  2 磁盘临时表的产生  在使用中,有些时候是不能使用 MEMORY 临时表的,而不得不使用 MyISAM 引擎来处理临 时表:   列中含有 BLOB 或 TEXT 字段  如果查询中包含 BLOB 或者 TEXT 列,临时表将直接被生成为 MyISAM 表,因为这种类 Author: beiyu95 msn:beiyu95@hotmail.com 
  • 2. 型的列不能存储在 Memory 表中。  值得注意的是,一些设计上的问题可能会导致内存临时表的大小比想象中的大得多, Memory 表总是使用固定长度的列,因此,假如 varchar(255)类型的列中只存储了 y,n 这 样的值,而在内存中占有的大小依然是 255,如果是 utf8 编码,就是 255*3  。这也是 为什么要避免使用不必要的长度来存储内容的重要原因。   ORDER BY  或  DISTINCT 中出现了大于 512bytes 的列   在使用 UNION(ALL)的情况下,SELECT 子句中出现了大于 512byte 的列  另外,当创建的 MEMORY 临时表过大时,将被转换为 MyISAM 表,并且存储在磁盘上。系 统参数 max_heap_table_size 决定了 MEMORY 表大小的上限,适用于所有的内存表,包括使 用 CREATE  TABLE 创建的表。但是,对于内部临时 MEMORY 表而言,其大小还有受限于 tmp_table_size。也就是说, 内存临时表的上限实际上是 max_heap_table_size 和 tmp_table_size 二者中的最小值。当 MEMORY 表大小超过最大值时,将被自动转换为存储在磁盘上的磁盘 临时表,使用 MyISAM 引擎进行处理。  从 mysql 的临时文件夹中可以查看是否会产生磁盘临时表,磁盘临时表是以#开头的文件。 下面是每秒一次产生的一段查看快照:  s lu p ha ce bu     3 临时表状态监控  3.1 主要指标 在性能测试的过程中,临时磁盘表的大量产生会造成较多的 IO,使系统性能大幅下降。和 磁盘临时表相关的主要参数有:   MAX_HEAP_TABLE_SIZE  MEMORY 表大小的最大值,通过这个值来计算 MEMORY 表的最大行数   MAX_TMP_TABLES  Author: beiyu95 msn:beiyu95@hotmail.com 
  • 3. 一个客户端同时打开的临时表个数限制   TMP_TABLE_SIZE  临时表的最大值。超过了这个值,内存中的 MEMORY 表将被自动转换为磁盘上的 MyISAM 表。   CREATED_TMP_DISK_TABLES  创建的磁盘临时表的个数。   CREATED_TMP_TABLES  创建的内存临时表的个数  下面是一次性能测试过程中,对临时表性能监控的快照。    在性能测试的过程中是通过 100*(磁盘临时表个数/(磁盘临时表个数+内存临时表个数)), 也就是磁盘临时表占临时表的比例来衡量这个指标的健康程度的。  3.2 监控方法 在测试过程中,可以通过 show status 命令的输出来查看临时表的状态变量,可以通过 show  s variables 来查看系统参数的设置。  如果想观察一段时间内指标的变化,可以借助脚本或者第三方工具来进行查看。Mysql  manager 就是一个不错的开源工具,它提供了丰富的管理、监控功能。通过它我们可以方便 的查看状态变量、系统参数,还可以进行自定义图表,通过定义自己的公式来添加关心的指 lu ha 标。  p ce bu   官方下载地址:http://dev.mysql.com/downloads/gui‐tools/5.0.html  Author: beiyu95 msn:beiyu95@hotmail.com 
  • 4. 4 案例分析  在维护模块客户报表批量下载功能的测试中,发现 max_heap_table_size 的值为 32M,而 tmp_table_size 的值为 512M。有大量的磁盘临时表产生。  s lu ha   根 据 前 面 的 分 析 , 可 能 会 是 由 于 max_heap_table_size 参 数 过 小 导 致 。 于 是 将 max_heap_table_size 的值调整为 512M。挑选同一个任务,进行测试,同一个任务调整前后 磁盘临时表的比率分别在 90%和 10%。 说明参数的调整大大减少了磁盘临时表的产生, 提高 p 了操作效率。  ce 优化前后对比如下:  bu   通过提高该参数的值,可以解决大量磁盘临时表的问题,但是应当注意的有两点:  1. 参数设置只是一部分, 相当一部分磁盘表的产生是由与 SQL 和数据库的不合理设计造成 的,比如含有 TEXT 字段,这也是我们进行优化和问题分析的重点。  2. 不能盲目调大临时表的参数,因为内存是有限的,需要从全局来考虑。对参数的调整要 进行系统的测试,以获得整体性能的提升。      Author: beiyu95 msn:beiyu95@hotmail.com 
  • 5. s lu   ha   p ce bu Author: beiyu95 msn:beiyu95@hotmail.com