Respostas:
O arquivo ibdata1 é o espaço de tabela do sistema para a infraestrutura do InnoDB.
Ele contém várias classes de informações vitais para o InnoDB
Clique aqui para ver uma representação pictórica
Você pode separar as páginas de dados e índice do ibdata1 ativando innodb_file_per_table . Isso fará com que qualquer tabela InnoDB recém-criada armazene dados e páginas de índice em um .ibd
arquivo externo .
Exemplo
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;
cria /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibd
Não importa onde a tabela do InnoDB esteja armazenada, a funcionalidade do InnoDB exige a busca de metadados da tabela e o armazenamento e recuperação de informações do MVCC para dar suporte à conformidade com ACID e ao isolamento da transação .
Aqui estão meus artigos anteriores sobre a separação de dados e índices de tabela do ibdata1
Oct 29, 2010
: Minha postagem original no StackOverflowNov 26, 2011
: ERRO 1114 (HY000) na linha 6308 no arquivo e a tabela user_analysis está cheiaFeb 03, 2012
: Otimização agendada de tabelas no MySQL InnoDBMar 25, 2012
: Por que o InnoDB armazena todos os bancos de dados em um arquivo?Apr 01, 2012
: Innodb_file_per_table é aconselhável?ib_logfile0
, ib_logfile1
)Se você deseja saber para que servem ib_logfile0
e ib_logfile1
são, eles são os logs de refazer do InnoDB. Eles nunca devem ser apagados ou redimensionados até que um desligamento normal do mysqld ocorra . Se o mysqld travar, basta iniciar o mysqld. Ele lerá ib_logfile0
e ib_logfile1
verificará quaisquer alterações de dados que não foram postadas no buffer de gravação dupla ibdata1
. Ele repetirá (refará) essas alterações. Uma vez que eles são reproduzidos e armazenados, o mysqld fica pronto para novas conexões do banco de dados.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibd
e innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1
deveria ser vice-versa, não deveria?