Jawaban:
File ibdata1 adalah tablespace sistem untuk infrastruktur InnoDB.
Ini berisi beberapa kelas untuk informasi penting untuk InnoDB
Klik Di Sini untuk melihat Representasi Pictorial
Anda dapat menceraikan Halaman Data dan Indeks dari ibdata1 dengan mengaktifkan innodb_file_per_table . Ini akan menyebabkan tabel InnoDB yang baru dibuat untuk menyimpan data dan mengindeks halaman dalam .ibdfile eksternal .
Contoh
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;, menciptakan /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibdDi mana pun tabel InnoDB disimpan, fungsionalitas InnoDB mengharuskan mencari metadata tabel dan menyimpan serta mengambil info MVCC untuk mendukung kepatuhan ACID dan Isolasi Transaksi .
Berikut adalah artikel saya sebelumnya tentang memisahkan data tabel dan indeks dari ibdata1
Oct 29, 2010: Posting Asli Saya di StackOverflowNov 26, 2011: ERROR 1114 (HY000) pada baris 6308 dalam file & Tabel user_analysis penuhFeb 03, 2012: Pengoptimalan terjadwal tabel di MySQL InnoDBMar 25, 2012: Mengapa InnoDB menyimpan semua basis data dalam satu file?Apr 01, 2012: Apakah innodb_file_per_table disarankan?ib_logfile0, ib_logfile1)Jika Anda ingin tahu untuk apa ib_logfile0dan ib_logfile1untuk apa, mereka adalah Log Redo InnoDB. Mereka tidak boleh dihapus atau diubah ukurannya sampai mysqld shutdown normal penuh telah terjadi . Jika mysqld pernah mogok, mulai saja mysqld. Ini akan membaca seberang ib_logfile0dan ib_logfile1untuk memeriksa perubahan data yang tidak diposting ke buffer tulis ganda di ibdata1. Itu akan mengulang (mengulang) perubahan itu. Setelah mereka diputar ulang dan disimpan, mysqld menjadi siap untuk Koneksi DB baru.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibddan innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1harus sebaliknya, bukan?