Devo ter uma instância do MySQL para todos os nossos aplicativos ou uma instância para cada um?

1

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?

    
por lindelof 16.09.2010 / 23:34

6 respostas

5

Não sabendo mais nada, mais simples é sempre melhor. Uma instância.

    
por 16.09.2010 / 23:36
3

Concorde com os outros - uma instância do mysql, mas:

  • bancos de dados separados para cada aplicativo
  • usuário / senha separados para cada aplicativo

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.

    
por 17.09.2010 / 14:01
1

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.

    
por 17.09.2010 / 00:04
1

Uma vez que a instância é melhor porque:

  • você pode usar todos os recursos disponíveis (RAM e espaço em disco)
  • O mysql pode atribuir os recursos, se necessário
  • o armazenamento em cache poderá usar o lance máximo quantidade de memória (sem caches obsoletos)
  • único local para gerenciamento
  • mais fácil de manter
por 17.09.2010 / 00:14
1

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.

    
por 12.08.2015 / 16:20
0

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.

    
por 12.08.2015 / 16:12