Não sabendo mais nada, mais simples é sempre melhor. Uma instância.
Somos uma pequena startup e eu preciso configurar vários aplicativos, quase todos exigindo um banco de dados.
Eu enfrento a escolha de configurar uma instância do MySQL, com um banco de dados para cada um de nossos aplicativos, ou de configurar uma instância separada do MySQL para cada aplicativo.
Qual é a melhor prática geralmente aceita nesta situação? Um banco de dados para servir a todos ou dividir e conquistar?
Não sabendo mais nada, mais simples é sempre melhor. Uma instância.
Concorde com os outros - uma instância do mysql, mas:
Isso simplificará a migração mais tarde. No entanto, use innodb em vez de c-isam como seu mecanismo de armazenamento - o último (IIRC) ainda processa apenas uma solicitação no momento.
Quando você precisa atualizar para vários servidores, recomendo usar a replicação master-master para que cada nó ainda sirva a todos os bancos de dados em vez de dividi-los, até chegar a cerca de 4 nós e iniciar o particionamento com base banco de dados.
Uma instância do MySQL, vários bancos de dados é a melhor prática.
Não consigo pensar em muitos cenários em que a situação ideal seria executar várias instâncias do MySQL com um banco de dados por instância. Parece bobo.
Uma vez que a instância é melhor porque:
Uma instância em uma máquina de alta especificação, uma matriz de disco rápida (talvez SSD, rede LACP) e cria DBs separados e login para cada aplicativo.
Esta é uma implementação típica para a maioria dos sistemas de banco de dados, especialmente SQL. Você deve considerar a disponibilidade, no entanto, ao centralizar seu servidor de banco de dados. Portanto, na maioria dos ambientes de produção, você verá um cluster SQL que consiste em um par de servidores replicando uns aos outros ou compartilhando algum armazenamento SAN.
Você sempre tem que considerar quando coloca vários bancos de dados em uma instância do MySQL, eles também podem corromper um ao outro se eles compartilham o mesmo usuário.
Além disso, você só pode usar uma versão do mysqld. Talvez um dos seus bancos de dados precise de uma versão diferente.