gpt4 book ai didi

mysql - 什么是表空间,为什么要使用它?

转载 作者:IT老高 更新时间:2023-10-28 23:49:08 25 4
gpt4 key购买 nike

在调查问题时,我遇到了这个错误:

30503 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace mysql/innodb_index_stats uses space ID: 2 at filepath: ./mysql/innodb_index_stats.ibd. Cannot open tablespace Mydb/be_command_log which uses space ID: 2 at filepath: ./Mydb/be_command_log.ibd

在阅读了一些关于这个问题的信息后,我知道这是 a known issue of MySQL .

但我的问题是我不太了解表空间的真正工作原理。它们有什么用处?我读了this definition ,但它并没有提供所有信息。

谁能分享一些关于什么是表空间以及它们如何工作的详细信息?

最佳答案

一个数据文件,可以保存一个或多个 InnoDB 表和相关索引的数据。

有许多类型的表空间基于配置 w.r.t 每个表的信息俱乐部。这些是,

一个。系统表空间湾。每个表空间的文件C。通用表空间

系统表空间包含,

  1. InnoDB 数据字典。
  2. 双写缓冲区。
  3. 改变缓冲区
  4. 撤消日志。

除此之外,它还包含,

  1. 表格和
  2. 索引数据

关联文件是 .idbdata1

innodb_file_per_table 选项,在 MySQL 5.6 及更高版本中默认启用,允许在 file-per-table 表空间中创建表,每个表都有一个单独的数据文件。启用 innodb_file_per_table 选项可以使用其他 MySQL 功能,例如表压缩和可传输表空间。

关联文件是 .idbd

InnoDB 在 MySQL 5.7.6 中引入了通用表空间。通用表空间是使用 CREATE TABLESPACE 语法创建的共享表空间。它们可以在 MySQL 数据目录之外创建,能够容纳多个表,并支持所有行格式的表。

关于mysql - 什么是表空间,为什么要使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37805316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com