1

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

これらのファイルごとに:

  1. ファイルはいつ作成されますか?
  2. ファイルはいつ書き込まれますか?
  3. ファイルはいつから読み取られますか?
  4. ファイルが破損または削除された場合の結果はどうなりますか?
4

1 に答える 1

4
/path/to/mysql/data/[database]/[table].ibd (due to innodb_file_per_table)

ここにデータが保存されます。これらは、テーブルを作成するときに作成されます。

/path/to/mysql/data/data/ib_logfile0
/path/to/mysql/data/data/ib_logfile1

これらはlogfilesです。

すべてのデータ変更は順次書き込まれるため、logfiles先行書き込みログが可能になります(トランザクションにとって重要)

/path/to/mysql/data/data/ibdata1

これは、システムデータとUNDOデータが保存される場所です。

ibdataが見つからない場合はMySQLInnoDBエンジンが初期化されていないと見なし、新しいを作成しますibdata。と同じlogfilesです。

テーブルに対してクエリが発行され、.ibdファイルが見つからない場合、次のMySQLメッセージで失敗します。

テーブルのファイルが存在しますがdatabase/table、内部データディクショナリからテーブルが見つかりません。データファイルを削除して再作成したが、対応するテーブルのファイルを削除するのを忘れた、またはファイルを別のデータベースに移動した可能性がありますか?InnoDB.frmInnoDB.frmInnoDB.frm

于 2009-07-29T17:27:12.637 に答える