Quando isso pode ser um problema
Se você executar show table status
em uma tabela e o campo Data_free
for a grande maioria do tamanho do seu arquivo ibdata1
, talvez você tenha muito espaço desperdiçado. Uma grande quantidade de inserção / exclusão fará com que isso seja um problema. Se esse for o caso e inserções e exclusões transitórias comporem a maior parte dos seus dados, você terá um bom argumento para o arquivo por tabela.
Isso não é um "sim" automático, no entanto. Há muita conversa no mundo sobre a fragmentação interna dentro dos arquivos InnoDB, mas colocá-los em um sistema de arquivos como arquivo por tabela simplesmente move sua fragmentação para o nível do sistema de arquivos ao invés do nível do banco de dados.
Por que isso geralmente não é um problema
Pense no seu arquivo InnoDB como um sistema de arquivos em vez de um arquivo. Se você tiver muitos arquivos, precisará de um grande sistema de arquivos.
Na maior parte, os sistemas de arquivos se saem muito bem na escalabilidade para lidar com terabytes de dados e incontáveis números de arquivos. Às vezes, eles se deparam com problemas de indexação inadequada (por exemplo, limites para o número de arquivos em um diretório antes de um impacto no desempenho), mas na maioria das vezes o moderno sistema de arquivos pode se espalhar pelo intervalo de terabytes.
O InnoDB funciona da mesma maneira. O tamanho do seu arquivo de dados pode ser enorme ... e como grandes sistemas de arquivos, que podem apresentar problemas com o backup de seus dados. No entanto, assim como dividir seu sistema de arquivos em múltiplas partições não ajuda com este problema, nem tenta manipular o innodb. Embora você possa usar o innodb_file_per_table , raramente o recomendo.
Assim como seu sistema de arquivos, a melhor resposta é conhecer os limites internamente e trabalhar dentro dele. Entenda os índices e aplique-os adequadamente. Não tente dividir o InnoDB, não é para isso.
Desde que eu estou lutando para transmitir construtivamente o conceito, aqui está uma rápida leitura que palavras isso melhor do que eu posso: Terabytes não é big data, petabytes é .
I remember a really really old MySQL marketing slide where the customer was running a data warehouse with some terabytes. Many years ago. InnoDB or MyISAM, both would work. This is standard off the rack MySQL stuff.
Não se preocupe com um banco de dados de 15 GB.