Eu olhei para o my.ini e vi várias configurações padrão. Meu banco de dados está sendo executado em um único PC independente. Quero otimizar o desempenho do InnoDB e do MySQL em geral para desempenho. Não há restrição de espaço em disco. Quais configurações padrão devo alterar para otimizar para obter melhor desempenho, confiabilidade e possíveis backups pontuais [alta disponibilidade].
Editado
Atualmente, sempre que eu executo "Otimizar tabelas" via Manutenção no MySQL Administrator, ele mostra:
A tabela não suporta otimizar, ao invés de recriar + analisar
em todas as mesas. Todas as minhas tabelas são InnoDB, mas por que elas não suportam o Optimize?
Respostas:
A maneira de ajustar o InnoDB é centrada em torno
Aqui está uma fórmula que eu usei nos últimos 5 anos para calcular o InnoDB Buffer Pool com base no espaço em disco usado pelos dados e páginas de índice do InnoDB :
Obviamente, eu disse uma função da memória e espaço em disco disponíveis atualmente usados pelo InnoDB. A partir daqui, basta usar o bom senso. O número recomendado da consulta acima não deve exceder 75% da RAM instalada !!! Essa é a regra de ouro mais simples para dimensionar o InnoDB Buffer Pool.
Você também deve definir innodb_flush_method como O_DIRECT, pois ele fornecerá gravações síncronas estáveis do InnoDB. Também escrevi um post sobre como otimizar o armazenamento em disco para o InnoDB .
Com relação à mensagem A tabela não suporta otimizar, ao invés de recriar + analisar , a razão pela qual você recebe essa mensagem de erro é o fato de o mecanismo de armazenamento ser o InnoDB. Mecanicamente, OPTIMIZE TABLE apenas copia a tabela para uma tabela temporária e executa ANALYZE TABLE .
Na realidade, ANALYZE TABLE contra o InnoDB é completamente inútil. Mesmo se você executou ANALYZE TABLE em uma tabela InnoDB, o mecanismo de armazenamento InnoDB executa mergulhos no índice para aproximações de cardinalidade repetidas vezes, destruindo assim as estatísticas que você acabou de compilar. De fato, a Percona realizou alguns testes no ANALYZE TABLE e também chegou à mesma conclusão .
Aqui estão outras postagens que fiz ao longo do ano sobre o InnoDB Tuning
fonte
Aqui está um artigo mais antigo sobre as variáveis importantes para 'sintonia grossa'. O mais importante provavelmente sendo
innodb_buffer_pool_size
Eu recomendo atualizar para o MySQL 5.5 (se você ainda não o estiver executando). Eles fizeram algumas alterações no desempenho do InnoDB. Eles ainda fornecem uma seção principal sobre como otimizar o InnoDB agora que é o mecanismo padrão: http://dev.mysql.com/doc/refman/5.5/en/optimizing-innodb.html
Quanto aos backups point-in-time, convém consultar o log binário . O básico para habilitar isso é definir a
log-bin
variável no seu my.cnffonte
O Optimize vem em várias cores.
Acho que seu primeiro passo deve ser o de decidir o que "otimizar" significa para você. Para algumas pessoas, significa "consultas SELECT mais rápidas". Para outros, significa "melhor equilíbrio entre desempenho SELECT e desempenho INSERIR". Para outros, "desempenho mais rápido do INSERT".
Você precisa decidir quais são seus critérios e como informar se suas alterações serão úteis antes de iniciar o ajuste.
Em seguida, coloque seus arquivos de configuração e opções de inicialização sob controle de versão e comece a experimentar. Documento cujos conselhos você segue e onde os encontrou. (O conselho muda com o tempo, à medida que a base de código e o hardware mudam.) Coloque esses documentos sob controle de versão também.
fonte