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 .ibdarquivo externo .
Exemplo
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;cria /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibdNã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_logfile0e ib_logfile1sã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_logfile0e ib_logfile1verificará 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.ibde innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1deveria ser vice-versa, não deveria?