O que eu deveria saber antes de ir ao vivo com um banco de dados InnoDB?

10

Quais são as coisas que um administrador de banco de dados ou de um servidor deve conhecer e fazer antes de disponibilizar um banco de dados InnoDB.

Estou pensando em definir valores corretos para innodb_buffer_pool_size e innodb_log_file_size

Então, quais são as coisas simples que você poderia esquecer de configurar para que o aplicativo que usa o banco de dados funcionasse menos do que o ideal?

    
por Jacco 04.05.2009 / 14:34

2 respostas

14

Existem algumas opções de configuração que você deve pensar antes de começar.

Contanto que você não esteja usando o myisam, você pode alocar com segurança quase todos (mantenha o suficiente para ter seu sistema operacional rodando confortavelmente, e o suficiente para sua max_connections ) sua memória para innodb_buffer_pool . A coisa boa sobre o InnoDB é que ele manipula quase todo o material de memória sozinho, não é necessário separar coisas como caches de consulta, buffers de chaves, etc.

Eu recomendo que você ative o innodb_file_per_table , simplesmente porque torna muito mais fácil apenas navegar pelo sistema de arquivos e ver quanto espaço as diferentes tabelas e bancos de dados precisam. Você ainda precisará de um arquivo ibdata genérico para uso interno do InnoDB, mas você pode defini-lo como 10M:autoextend . Não há necessidade de definir muitos arquivos diferentes de dados innodb com tamanhos pré-alocados.

innodb_log_file_size e innodb_log_buffer_size combinados devem ser maiores que dez vezes seu maior objeto de blob se você tiver muitos grandes. Se não o fizer (e você não deve [ 1 , 2 ]), realmente não há necessidade de se preocupar muito com isso. Verifique Blog de desempenho do MySQL para um relatório detalhado sobre como calcular.

E quando você executar seu MySQL por um tempo, verifique suas configurações com MySQLTuner ou MySQL Tuning Primer .

Para um relatório mais detalhado, tente mysqlreport e, para monitoramento ao vivo, marque mytop .

    
por 04.05.2009 / 15:19
2

Uma pequena "surpresa" para mim foi que innodb usa, por padrão, um arquivo para todos os bancos de dados / tabelas. Ao contrário das tabelas MyISAM que usam um diretório por banco de dados e arquivos por table / tableindex.

Isso pode ser importante se você estiver acostumado a reduzir os arquivos físicos em uma base de tabela (otimizar tabela xxx)

    
por 03.07.2009 / 19:45

Tags