对 MySQL InnoDB 表的更改 - 涉及哪些文件以及为什么?
当更改 InnoDB MySQL 表的内容时,文件系统上的以下文件似乎涉及/更改:
/path/to/mysql/data/[database]/[table].ibd
(由于到innodb_file_per_table
)/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1
/path/to/mysql/data/data/ibdata1
对于每个文件:
- 文件何时创建?
- 文件什么时候会被写入?
- 什么时候会读取该文件?
- 如果文件损坏或删除会产生什么后果?
When changing the content of an InnoDB MySQL table the following files on the file system appears to be involved/changed:
/path/to/mysql/data/[database]/[table].ibd
(due toinnodb_file_per_table
)/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1
/path/to/mysql/data/data/ibdata1
For each of these files:
- When is the file created?
- When will the file be written to?
- When will the file be read from?
- What would be the consequence if the file is corrupt or deleted?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是您存储数据的地方。 它们是在您创建表时创建的。
这些是
日志文件
。所有数据更改都会按顺序写入
日志文件
,这允许预写日志记录(对于事务至关重要)这是存储系统数据和
UNDO
数据的位置。如果没有找到
ibdata
,MySQL
会认为InnoDB
引擎没有初始化,而只是创建新的ibdata
。 与日志文件
相同。如果对表发出查询,并且未找到
.ibd
文件,MySQL
将失败并显示以下消息:This is where you data are stored. They are created when you create the tables.
These are
logfiles
.All data changes are written into the
logfiles
sequentially, which allows write-ahead logging (crucial for transactions)This is where system data and
UNDO
data are stored.If
ibdata
is not found,MySQL
will think thatInnoDB
engine is not initialized and just create the newibdata
. Same withlogfiles
.If a query is issued against a table, and
.ibd
file is not found,MySQL
will fail with this message: