当前位置:Gxlcms > 数据库问题 > 一条sql语句引发mysql不停创建临时表的问题解决..coping to tmp table on desk

一条sql语句引发mysql不停创建临时表的问题解决..coping to tmp table on desk

时间:2021-07-01 10:21:17 帮助过:117人阅读

(不懂临时表的先看 MySQL临时表 ) 首先,临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。因此在不同的连接中可以创建同名的临时表,并且操作属于本连接的临时表。         创建临时表的语法与创建表语法类似,不同之处是增加关键字TEMPORARY        临时表主要用于对大数据量的表上作一个子集,提高查询效率。但是当语句写得有问题则可能会造成不断的创建的临时表,导致磁盘I/O利用率过高。 我之前写了一个存储过程,里面有一条语句,刚开始用了group by ..having,如下 技术分享 用explain分析该语句可知,该语句会使用临时表(Using temprory), 执行语句后,用SHOW GLOBAL STATUS LIKE ‘Created_tmp_disk_tables‘;和 SHOW GLOBAL STATUS LIKE ‘Created_tmp_tables‘;查看,发现临时表一直在增加 技术分享 当去掉group by..having再用explain分析,可知,不会再Using temrory 技术分享

 

      参考文章: mysql调优三步曲(慢查询、explain profile) mysql show processlist命令 详解 MySQL临时表

一条sql语句引发mysql不停创建临时表的问题解决..coping to tmp table on desk

标签:create   .com   ges   过程   des   查看   存储   bsp   profile   

人气教程排行