iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 5.7 新特性 共享临时表空间及临时表改进
  • 372
分享到

MySQL 5.7 新特性 共享临时表空间及临时表改进

2024-04-02 19:04:59 372人浏览 八月长安
摘要

〇 前言: 在Mysql 5.6引用了独立undo tablespace之后,mysql 5.7在temporary tablespace上做了改进。 已经实现将temporary tablespac



〇 前言:

Mysql 5.6引用了独立undo tablespace之后,mysql 5.7在temporary tablespace上做了改进。
已经实现将temporary tablespace从ibdata(系统表空间文件)中分离。
并且可以重启重置大小,避免出现像ibdata难以释放的问题。

但下面所有的讨论只针对InnoDB,并且指定了innodb_file_per_table,所用版本为Mysql 5.7.x


〇 新特性 · 共享临时表空间(shared temporary tablespace):

共享临时表空间出现于MySQL 5.7.1,为的是将临时表空间从系统表空间(system tablespace)文件中独立出来。该共享临时表空间用于存储非压缩InnoDB临时表(non-compressed InnoDB temporary tables)、关系对象(related objects)、回滚段(rollback segment)等数据。更多信息可以参考【MySQL 5.7 Reference Manual 8.4.4 Internal Temporary Table Use in MySQL】

因为存放的数据特殊性,不会参与crash recovery,因此无需记录redo log。

该共享临时表空间默认大小为12MB。在实例关闭之后,将会被删除。在实例启动时则会被创建。

默认的,该共享临时表空间存放在innodb_data_home_dir中的ibtmp1里,而innodb_data_home_dir默认为datadir。
所以一般该ibtmp1存放在datadir下,显然,其路径与共享表空间的路径一样,取决于innodb_data_home_dir。


新增参数innodb_temp_data_file_path,通过修改其值可以将该共享临时表空间的文件名,扩展大小做修改。


比如在配置文件中加上innodb_temp_data_file_path = temp_tablespace:64M:autoextend
那么在启动实例之后,会生成一个大小为64MB的temp_tablespace文件
-rw-r----- 1 root root   67108864 Jun 20 17:29 temp_tablespace

该参数默认出现于5.7.1,静态,默认值为ibtmp1:12M:autoextend。


〇 新特性 · InnoDB临时表统计信息优化

因为临时表特性,是无法在SHOW TABLES;与通过infORMation_schema.TABLES查询到其元数据信息的。
老版本可能只能通过一些比较麻烦的方法来查看:
比如SHOW CREATE TABLE tmp_a\G

5.7版本之后,在I_S里增加了一个表来统计该表的元数据信息INNODB_TEMP_TABLE_INFO。
可以通过I_S来查看该表的定义:
    
  1. SELECT * FROM information_schema.INNODB_TEMP_TABLE_INFO;
  2. +----------+---------------+--------+-------+----------------------+---------------+
  3. | TABLE_ID | NAME          | N_COLS | SPACE  | PER_TABLE_TABLESPACE | IS_COMPRESSED |
  4. +----------+---------------+--------+-------+----------------------+---------------+
  5. | 68       | #sql2b79_35_0 | 4      | 37    | FALSE                | FALSE         |
  6. +----------+---------------+--------+-------+----------------------+---------------+
  7. 1 row in set (0.00 sec)
您可能感兴趣的文档:

--结束END--

本文标题: MySQL 5.7 新特性 共享临时表空间及临时表改进

本文链接: https://www.lsjlt.com/news/46873.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 5.7 新特性 共享临时表空间及临时表改进
    〇 前言: 在MySQL 5.6引用了独立undo tablespace之后,MySQL 5.7在temporary tablespace上做了改进。 已经实现将temporary tablespac...
    99+
    2022-10-18
  • MySQL 5.7临时表空间的使用方法
    这篇文章将为大家详细讲解有关MySQL 5.7临时表空间的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。导读MySQL 5.7的目标是成为发布以来最安全的MySQ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作