当前位置:首页 > 文章列表 > 数据库 > MySQL > mysql临时表的作用是什么

mysql临时表的作用是什么

来源:亿速云 2023-05-12 16:25:35 0浏览 收藏

从现在开始,我们要努力学习啦!今天我给大家带来《mysql临时表的作用是什么》,感兴趣的朋友请继续看下去吧!下文中的内容我们主要会涉及到等等知识点,如果在阅读本文过程中有遇到不清楚的地方,欢迎留言呀!我们一起讨论,一起学习!

mysql临时表的作用:1、用户自己创建的临时表用于保存临时数据;2、当用户在执行复杂SQL时,可以借助临时表进行分组,排序,去重等操作,并且默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。

MySQL临时表的作用

MySQL临时表在很多场景中都会用到,比如用户自己创建的临时表用于保存临时数据,以及MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作。以下内容对MySQL的临时表概念、分类以及常见问答进行了整理。
mysql临时表的作用是什么

MySQL临时表类型

1.外部临时表,通过create temporary table语法创建的临时表,可以指定存储引擎为memory,innodb, myisam等等,这类表在会话结束后,会被自动清理。如果临时表与非临时表同时存在,那么非临时表不可见。show tables命令不显示临时表信息。
可通过information_schema.INNODB_TEMP_TABLE_INFO系统表可以查看外部临时表的相关信息,这部分使用的还是比较少。
mysql临时表的作用是什么

2.内部临时表,通常在执行复杂SQL,比如group by, order by, distinct, union等,执行计划中如果包含Using temporary,还有undo回滚的时候,但空间不足的时候,MySQL内部将使用自动生成的临时表,以辅助完成工作。

MySQL临时表相关参数

1.max_heap_table_size:用户创建的内存表的最大值,也用于和tmp_table_size一起,限制内部临时表在内存中的大小。
2.tmp_table_size:内部临时表在内存中的的最大值,与max_heap_table_size参数共同决定,取二者的最小值。如果临时表超过该值,就会从内存转移到磁盘上。
3.innodb_tmpdir:online ALTER TABLE operations that rebuild the table max_tmp_tables

4.default_tmp_storage_engine:外部临时表(create temporary table创建的表)默认的存储引擎。

"innodb_temp_data_file_path is a property of the InnoDB engine for temporary files."。建议限制innodb_temp_data_file_path = ibtmp1:1G:autoextend:max:30G

6.Internal_tmp_disk_storage_engine:磁盘上的内部临时表存储引擎,可选值为myisam或者innodb。使用innodb表在某些场景下,比如临时表列太多,或者行大小超过限制,可能会出现“ Row size too large or Too many columns”的错误,这时应该将临时表的innodb引擎改回myisam。tmpdir:临时表目录,当临时表大小超过一定阈值,就会从内存转移到磁盘上,
7.tmpdir变量表示磁盘上临时表所在的目录。

MySQL临时表相关状态变量

1.Created_tmp_disk_tables:执行SQL语句时,MySQL在磁盘上创建的内部临时表数量,如果这个值很大,可能原因是分配给临时表的最大内存值较小,或者SQL中有大量排序、分组、去重等操作,SQL需要优化。

2.Created_tmp_files:创建的临时表数量

3.Created_tmp_tables:执行SQL语句时,MySQL创建的内部临时表数量。

4.Slave_open_temp_tables statement 或则 mix模式下才会看到有使用。
slave_open_temp_tables 的值显示,通过复制,当前slave创建了多少临时表,binlog_format只能是statement 和 mixed 下有效.
备注:stop slave 也没有用,必须主库手动删除 或则 session退出 才可以。
以下是从库binlog记录信息:
mysql临时表的作用是什么

MySQL临时表注意事项

1.MySQL临时表可能导致磁盘可用空间减少:
在MySQL5.7版本之前,临时表的存储引擎默认为myisam,myisam临时表在SQL执行结束后,会自动删除临时表。然而从5.7版本开始,临时表的默认存储引擎变为innodb,虽然在性能上有了一定的提升,但是由于innodb引擎的临时表共用表空间ibtmp1,导致在高并发下,多个session同时创建临时表时,该表空间会变得非常大,并且不能动态缩小,除非重启MySQL,否则无法释放。
mysql临时表的作用是什么

可以为临时表空间设置一个最大值,比如10G,如下:
innodb_temp_data_file_path = ibtmp1:128M:autoextend:max:10G
当临时表空间达到最大值10G时,SQL执行将会报错,影响应用的正常执行。
对于临时表空间过大的问题,通常也有一些其他方法解决,比如:
将临时表的存储引擎设置为myisam,虽然可能有一些性能问题,但不会导致磁盘空间问题。

2.SQL语句:
(1)加上合适的索引
(2)在where条件中过滤更多的数据
(3)重写SQL,优化执行计划
(4)如果不得不使用临时表,那么一定要减少并发。建议使用SSD硬盘。

3.undo相关
1)使用innodb_rollback_segments配置选项定义回滚segment的数量,默认设置是128,也是最大值。一个回滚segment总是分配给系统表空间,32个回滚segment预留给临时表空间(ibtmp1)。因此,要分配回滚段来撤消表空间,将innodb_rollback_segments设置为大于33的值。配置单独的undo表空间时,system表空间中的回滚段将呈现为非活动状态。

就是说超过128回滚segement的时候,就需要临时表出来救急。

tablespace -> segment -> extent(64个page,1M) -> page(16kb)

2)truncate undo
当innodb_undo_log_truncate触发的时候,undo表空间截断操作在服务器日志目录中创建一个临时的undo_space_number_trunc.log文件,该日志目录由innodb_log_group_home_dir定义。如果在truncate操作期间发生系统故障,临时日志文件允许启动进程识别被截断的undo表空间,并继续操作。

4.binlog 缓存相关
使用二进制日志缓存并且值达到了binlog_cache_size设置的值,用临时文件存储来自事务的变化这样的事务数量。可通过Binlog_stmt_cache_disk_use状态变量中单独跟踪。

终于介绍完啦!小伙伴们,这篇关于《mysql临时表的作用是什么》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布数据库相关知识,快来关注吧!

版本声明
本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
mysql连接数指的是什么mysql连接数指的是什么
上一篇
mysql连接数指的是什么
win7如何清空剪切板内容
下一篇
win7如何清空剪切板内容
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    20次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    29次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    35次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    43次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    36次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码