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 阅读 104 次 更新于 2025-09-09 12:14:48 我来答关注问题0
  • MySQL 5.7之临时表空间 MySQL 5.7对于InnoDB存储引擎的临时表空间做了优化。在MySQL 5.7之前,INNODB引擎的临时表都保存在ibdata里面,而ibdata的贪婪式磁盘占用导致临时表的创建与删除对其他正常表产生非常大的性能影响。在MySQL5.7中,对于临时表做了下面两个重要方面的优化:1、MySQL 5.7 把临时...

  •  文暄生活科普 MySQL表空间介绍

    MySQL的表空间是物理层面的概念,与逻辑层面的库和表相对应。表空间实际上就是表空间文件,是实际存在于磁盘上的物理文件。在InnoDB存储引擎中,数据是按照表空间来组织存储的。简而言之,表空间文件是MySQL存储数据的物理载体。例如,以.ibd结尾的文件就是表空间文件,其中city.ibd就是city表的独立表空间...

  •  深空见闻 innodb存储引擎原理

    表空间:InnoDB存储引擎的表&索引存储在一个表空间中,表空间可以包含数个文件(或原始磁盘分区)。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。行格式:主要有Compact、Dynamic和Compressed三种。Compact格式在记录的真实数据处只会存储该列的前768个字节的数据,剩余的数据分散存储在几...

  • anonymous mysql中的表空间的概念是逻辑概念还是物理概念

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

  • 变为了初始大小,状态为非活动的,证明在 mysql8.0 中可以通过杀掉会话来释放临时表空间。总结:在 mysql5.7 时,杀掉会话,临时表会释放,但是仅仅是在 ibtmp 文件里标记一下,空间是不会释放回操作系统的。如果要释放空间,需要重启数据库;在 mysql8.0 中可以通过杀掉会话来释放临时表空间。

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

mySQL相关话题

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