Configurações de servidor para hospedagem de banco de dados MySQL

Configurações de servidor para hospedagem de banco de dados MySQL

Tenho uma aplicação web que usa um banco de dados MySQL hospedado em um servidor virtual. Eu tenho usado esse servidor quando iniciei o aplicativo e quando o banco de dados era muito pequeno. Agora ele cresceu e o servidor não consegue lidar com o banco de dados, causando erros frequentes no banco de dados. Estou planejando adquirir um servidor e preciso de sugestões para isso.
Como eu disse, o banco de dados agora é de 9 GB e está crescendo consideravelmente rápido. Existem diversas tabelas com milhões de linhas, que são atualizadas e consultadas com frequência. O erro mais frequente que o banco de dados mostra é Lock wait timeout exceeded. Anteriormente, também existiam erros "O número total de bloqueios excede o tamanho da tabela de bloqueios", mas eu poderia evitá-los aumentando o tamanho do buffer pool do Innodb.
Por favor, sugira quais configurações devo procurar no servidor que devo comprar. Eu li em algum lugar que o banco de dados deveria idealmente ter um tamanho de buffer pool maior que o tamanho de seus dados, então no meu caso acho que precisaria de memória gt 9 GB. Que outras coisas devo procurar no servidor?

Apenas me diga se devo lhe dar mais informações sobre o

Responder1

Você poderia usar o script perl chamadoMySQLTunerpara obter algumas idéias de variáveis ​​para ajustar e, portanto, hardware para atualizar, se necessário.
No entanto, você deve compreender as configurações antes de modificá-las ou corre o risco de agravar o problema.

O próprio script contém uma dica muito esclarecedora:

*AVISO
É extremamente importante que você entenda completamente cada alteração feita em um servidor de banco de dados MySQL. Se você não entender partes da saída do script ou se não entender as recomendações, consulte um DBA experiente ou até mesmo um administrador de sistema em quem você confia. Sempre teste suas alterações em ambientes de teste e tenha sempre em mente que melhorias em uma área podem afetar negativamente o MySQL em outras áreas.
*AVISO

Você encontrará ótimos artigos sobre o assunto na Percona'sBlog de desempenho do MySQL, alista de livrostratando desse assunto e até mesmo screencast em seuspercona.tvlocal na rede Internet.

Responder2

Você examinou a espera do Lock?

Você pode fazer isso ativando o monitor de bloqueio do InnoDB:

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

Em seguida, siga seu log de erros do MySQL.

Para desabilitar o monitor, solte a tabela.

HTH

informação relacionada