Conversei com o arquiteto de banco de dados do wordpress.com, o serviço de hospedagem para WordPress. Ele disse que eles começaram com um banco de dados, hospedando todos os clientes juntos. O conteúdo de um único site de blog realmente não é muito, afinal. É lógico que um único banco de dados é mais gerenciável.
Isso funcionou bem para eles até que conseguiram centenas e milhares de clientes, eles perceberam que precisavam escalar , executando vários servidores físicos e hospedando um subconjunto de seus clientes em cada servidor. Quando eles adicionam um servidor, seria fácil migrar clientes individuais para o novo servidor, mas mais difícil separar dados em um único banco de dados que pertence ao blog de um cliente individual.
À medida que os clientes vêm e vão, e os blogs de alguns clientes têm atividade de alto volume, enquanto outros ficam obsoletos, o reequilíbrio em vários servidores se torna um trabalho de manutenção ainda mais complexo. Monitorar o tamanho e a atividade por banco de dados individual também é mais fácil.
Da mesma forma, fazendo um backup ou restauração de banco de dados de um único banco de dados contendo terrabytes de dados, versus backups e restaurações de bancos de dados individuais de alguns megabytes cada, é um fator importante. Considere:um cliente liga e diz que seus dados foram danificados devido a alguma entrada de dados incorreta, e você poderia restaurar os dados do backup de ontem? Como você restauraria um dados do cliente se todos os seus clientes compartilham um único banco de dados?
Eventualmente, eles decidiram que dividir em um banco de dados separado por cliente , embora complexo de gerenciar, ofereceu-lhes maior flexibilidade e eles rearquitetaram seu serviço de hospedagem para esse modelo.
Assim, enquanto a partir de uma modelagem de dados perspectiva parece ser a coisa certa a fazer para manter tudo em um único banco de dados, alguma administração de banco de dados as tarefas se tornam mais fáceis à medida que você passa por um determinado ponto de interrupção do volume de dados.