0

我正在尝试从本地 mysql 5.5 服务器上的英文 wiki 转储中导入 categorylinks sql 文件(大小几乎为 8 GB)。我是通过命令行完成的。导入过程自上周以来一直在进行,我可以通过检查 max(cl_from) 或使用显示当前插入查询的“show processlist”来肯定地验证数据是否已插入到 categorylinks 表中。

我唯一的困惑是 mysqlserver\data 文件夹中的 ibdata1 文件大小根本没有增加。我在某处读到 ibdata1 是包含 innodb 实际数据的文件。那么在执行插入查询以将数据插入到 categorylinks 表中时,ibdata1 文件大小不应该增加吗?

4

1 回答 1

0

您的 my.cnf 很可能启用了innodb_file_per_table 。

禁用 innodb_file_per_table 后,进入 ibdata1 的内容如下:

  • 表数据
  • 表索引
  • MVCC(多版本并发控制)数据
    • 回滚段
    • 撤消空间
  • 表元数据(数据字典)
  • 双写入缓冲区(后台写入以防止依赖操作系统缓存)
  • 插入缓冲区(管理对非唯一二级索引的更改)
  • 图示

启用 innodb_file_per_table 后,每个 InnoDB 表及其索引都存储在.ibd其各自 DB 文件夹下的文件中。例如,mydb.mytable 对于datadir /var/lib/mysql 存储如下:

  • /var/lib/mysql/mydb/mytable.frm
  • /var/lib/mysql/mydb/mytable.ibd
于 2012-10-19T21:57:31.717 回答