Yanıtlar:
İbdata1 dosyası, InnoDB altyapısı için sistem tablo alanıdır.
InnoDB için hayati önem taşıyan bilgiler için birkaç sınıf içerir
Resimli Temsili Görmek İçin Buraya Tıklayın
İnnodb_file_per_table işlevini etkinleştirerek Veri ve Dizin Sayfalarını ibdata1'den boşlayabilirsiniz . Bu, yeni oluşturulan InnoDB tablosunun veri ve dizin sayfalarını harici bir .ibddosyada depolamasına neden olur .
Misal
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;, oluşturur /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibdInnoDB tablosunun nerede depolandığına bakılmaksızın, InnoDB'nin işlevselliği, tablo meta verilerinin aranmasını ve ACID uyumluluğunu ve İşlem İzolasyonunu desteklemek için MVCC bilgilerinin depolanmasını ve alınmasını gerektirir .
İşte tablo verilerini ve dizinleri ibdata1'den ayırma ile ilgili geçmiş makalelerim
Oct 29, 2010: StackOverflow'daki Orijinal YazımNov 26, 2011: ERROR 1114 (HY000) satır 6308 dosyada & user_analysis tablosu doluFeb 03, 2012: MySQL InnoDB'deki çizelgelerin zamanlanmış optimizasyonuMar 25, 2012: InnoDB neden tüm veritabanlarını tek bir dosyada depolar?Apr 01, 2012: İnnodb_file_per_table tavsiye edilebilir mi?ib_logfile0, ib_logfile1)Eğer ib_logfile0ve ne için olduğunu bilmek istiyorsanız ib_logfile1, bunlar InnoDB Yinele Günlükleri vardır. MySQL'in tamamen normal bir şekilde kapanmasına kadar hiçbir zaman silinmemeli veya yeniden boyutlandırılmamalıdır . Eğer mysqld çökerse, sadece mysqld'yi başlatın. Karşılıklı olarak okunacak ib_logfile0ve ib_logfile1içindeki çift yazma arabelleğine kaydedilmemiş veri değişikliklerini kontrol edecektir ibdata1. Bu değişiklikleri tekrarlar (yeniden yapar). Tekrar oynatılıp saklandıktan sonra, mysqld yeni DB Bağlantıları için hazır hale gelir.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibdve innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1tam tersi olmalı, değil mi?