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

30503[错误]INNODB:try 打开以前打开的表空间.前面的表空间mysql/Innodb_index_stats在filepath:./mysql/Innodb_index_stats.ibd中使用空间ID:2.无法打开表空间Mydb/BE_COMMAND_LOG,该表空间在文件路径./Mydb/BE_COMMAND_log.ibd中使用空间ID:2

读了一点这个问题后,我才知道这是a known issue of MySQL.

但我的问题是,我对表空间的实际工作原理知之甚少.它们有什么用呢?我读了this definition页,但它没有给出所有的信息.

有人能分享一些关于what are tablespaces and how do they work?人的详细信息吗

推荐答案

可以保存一个或多个InnoDB表和关联索引的数据的数据文件.

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

a.SYSTEM表空间 b.每个表空间的文件 c.通用表空间

System tablespace contains

  1. InnoDB数据字典.
  2. 双写缓冲区.
  3. 更改缓冲区
  4. undo撤消日志(log).

除此之外,它还包含了,

  1. 表格及;
  2. 索引数据

Associated file is 100

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

Associated file is 100

MySQL 5.7.6中的InnoDB introduced general tablespaces.常规表空间是使用CREATE TABLESPACE语法创建的共享表空间.它们可以在MySQL数据目录之外创建,能够容纳多个表,并且支持所有行格式的表.

Database相关问答推荐

KUST查询指定时间跨度内里程表&值的差值,并将其滚动到0

术语 SSTable 和 LSM Tree 有什么区别

MySQL主键:UUID / GUID vs BIGINT(时间戳+随机)

Spring DriverManagerDataSource vs apache BasicDataSource

有没有办法使用 JPA 注释和 Hibernate 动态 Select @GeneratedValue 策略?

带有字符串列的 SQL 之间的子句

如何在 Products 表的主键和自然键之间做出决定?

在 phpmyadmin 中导入时如何跳过重复记录

C# 连接到数据库并列出数据库

将 XML 存储在数据库中是否不好?

如何从表列中删除唯一约束?

避免从网站数据库中data scraping数据抓取?

PostgreSQL 字符变长限制

显示包含特定表的所有数据库名称

复式记账的关系数据模型

如何使用 group_concat 引用值

SQLite3 数据库的最大连接数是多少?

多币种 - 存储什么以及何时转换?

包含 8000 万条记录并添加索引的表需要超过 18 小时(或永远)!怎么办?

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败