mysql5.7的表空间是什么意思

MySQL 5.7之临时表空间 MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。在MySQL5.7中,对于临时表做了下面两个重要方面的优化:1、MySQL 5.7 把临时...
mysql5.7的表空间是什么意思
深度解析MySQL 5.7之临时表空间

作者:杨涛涛

尽管临时表在实际在线场景中很少会去显式使用,但在某些运维场景还是需要到的,在MySQL5.7中,专门针对临时表做了些优化,下面这篇文章我们来一起深入的解析MySQL 5.7之临时表空间,有需要的朋友们可以参考借鉴,下面来一起看看吧。

临时表

临时表顾名思义,就是临时的,用完销毁掉的表。 数据既可以保存在临时的文件系统上,也可以保存在固定的磁盘文件系统上。

临时表有下面几种:

1、全局临时表

这种临时表从数据库实例启动后开始生效,在数据库实例销毁后失效。在MySQL里面这种临时表对应的是内存表,即memory引擎。

2、会话级别临时表

这种临时表在用户登录系统成功后生效,在用户退出时失效。在MySQL里的临时表指的就是以create temporary table这样的关键词创建的表。

3、事务级别临时表

这种临时表在事务开始时生效,事务提交或者回滚后失效。 在MySQL里面没有这种临时表,必须利用会话级别的临时表间接实现。

4、检索级别临时表

这种临时表在SQL语句执行之间产生,执行完毕后失效。 在MySQL里面这种临时表不是很固定,跟随MySQL默认存储引擎来变化。比如默认存储引擎是MyISAM,临时表的引擎就是MyISAM,并且文件生成形式以及数据运作形式和MyISAM一样,只是数据保存在内存里;如果默认引擎是INNODB,那么临时表的引擎就是INNODB,此时它的所有信息都保存在共享表空间ibdata里面。

MySQL 5.7之临时表空间

MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。在MySQL5.7中,对于临时表做了下面两个重要方面的优化:

1、MySQL 5.7 把临时表的数据以及回滚信息(仅限于未压缩表)从共享表空间里面剥离出来,形成自己单独的表空间,参数为innodb_temp_data_file_path。

22017-08-03
表空间的选择,可以说是对表的日常管理以及访问性能有非常紧密的联系。
表空间是用来管理 MySQL 关系表的一种形式,有自己的磁盘文件。
MySQL 表空间可分为共享表空间和单表空间;其中共享表空间又可分为系统表空间和通用表空间。2020-12-07
mengvlog 阅读 11 次 更新于 2025-07-20 02:40:18 我来答关注问题0
  • MySQL 5.7之临时表空间 MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。在MySQL5.7中,对于临时表做了下面两个重要方面的优化:1、MySQL 5.7 把临时...

  • 在MySQL 5.7.28版本中: .frm文件:存储表结构。 .ibd文件:存储数据和索引。 db.opt文件:存储字符集和排序信息。 在MySQL 8.0.25版本中: 每个数据库有自己的表空间文件。 可以通过ibd2sdi命令解析.ibd文件。 MyISAM引擎: 表结构文件: 在MySQL 5.7.28版本中:.fr...

  • 以MySQL 8.0 来说,通过查看 8.0 的官方文档得知,8.0 的临时表空间分为会话临时表空间和全局临时表空间,会话临时表空间存储用户创建的临时表和当 InnoDB 配置为磁盘内部临时表的存储引擎时由优化器创建的内部临时表,当会话断开连接时,其临时表空间将被截断并释放回池中;也就是说,在 8.0 中...

  •  文暄生活科普 MySQL基础入门:MySQL安装目录结构解析

    InnoDB和MyISAM是MySQL的两种主要存储引擎,它们在文件系统中的存储方式有所不同。InnoDB将数据和索引信息存放在同一个.ibd文件中,而MyISAM将数据和索引分别存放在.MYD和.MYI文件中。InnoDB还支持独立表空间,每个表拥有自己的文件空间,而MyISAM则使用统一的数据库子目录来存放表数据。随着MySQL的发展,...

  •  Jinvinciable 什么是表空间和系统表空间

    一、系统表空间 在 MySQL 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。923275 12M -rw-r--- 1 mysql mysql 12M 3月 18 10:42 ibdata1 这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 my.cnf 里面这样定义即可。innodb_data_file_pa...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部