Existem perguntas semelhantes neste site, mas elas cobrem principalmente aspectos de falha do servidor e backup de dados. Estou preocupado apenas com o desempenho da consulta. Se mestre e escravo compartilham os mesmos recursos, a tabela mestre é usada apenas para gravações e a escrava apenas para leituras, isso ajudará o banco de dados a lidar com um número crescente de consultas com mais eficiência, desde que as consultas sejam otimizadas adequadamente?
relate perguntas
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
É muito improvável que a execução de mestre e escravo na mesma máquina seja benéfica, porque as duas instâncias não compartilhariam recursos de maneira positiva ou útil.
Executar duas instâncias com os mesmos dados significa que você tem que dividir os recursos disponíveis em alguma combinação de maneiras implícitas (cpu, disco, memória incluindo cache do sistema operacional) e explícitas (configuração de pool de buffers/cache de chaves)...
Significativamente, o fato de um ser uma réplica do outro significa que as gravações do banco de dados estão disputando o dobro de recursos quase ao mesmo tempo: para cada gravação feita pelo mestre, uma gravação comparável deve ser feita pelo escravo, o que significa -- aproximadamente -- o dobro da utilização do disco, mais o fato de que cada entrada do log binário é gravada pelo menos duas vezes, primeiro no log binário mestre, depois no log de retransmissão do escravo e depois no log binário do escravo, se ativado.
O fato de que cada instância agora tem menos memória disponível significa que menos dados podem ser armazenados em cache na memória, o que significa que você aumentará ainda mais a necessidade de acesso ao disco, pois menos dados em cache significam mais E/S de disco, quase por definição.
Pode haver cenários específicos em que dividir a carga de trabalho dessa maneira pode servir a um propósito útil, mas situações em que tal configuração degradaria o desempenho parecem superar significativamente quaisquer cenários em que você veria uma melhoria... e esses casos provavelmente seriam carga de trabalho muito específica.