Se o aplicativo top do Unix ou o
            Gerenciado de Tarefas do Windows
            mostrar que percentual de uso da CPU com sua carga de
            trabalho é menor que 70%, provavelmente sua carga de
            trabalho está no limite do disco. Talvez você esteja
            fazendo muitos commits de transações ou a área de buffer
            é muito pequena. Tornar o buffer maior pode lhe ajudar, mas
            não o configure com mais de 80% da memória física.
          
            Envolva diversas modificações em uma transação. O
            InnoDB deve descarregar o log em disco a
            cada commit da transação se esta transação fizer
            modificações no banco de dados. Uma vez que o velocidade
            de rotação do disco é normalmente 167
            revoluções/segundo, o número de commits fica limitado aos
            mesmos 167/segundo se o disco não enganar o sistema
            operacional.
          
            Se você puder ter perda dos últimos commits feitos em
            transações, você pode configurar o parâmetro
            innodb_flush_log_at_trx_commit no arquivo
            my.cnf com 0. O
            InnoDB tenta descarregar o log uma vez
            por segundo de qualquer forma, embora a descarga não seja
            garantida.
          
            Torne os seus arquivos de log maiores, tão grande quanto a
            área de buffer. Quando o InnoDB escrever
            o arquivo de log totalmente, ele terá que escrever o
            conteúdo modificado da área de buffer no disco em um ponto
            de verificação. Arquivos de log menores causarão muitos
            escrita desnecessárias em disco. O ponto negativo em
            arquivos grandes é que o tempo de recuperação será
            maior.
          
O buffer de log também deve ser grande, cerca de 8 MB.
            (Relevante para versão 3.23.39 e acima.) Em algumas
            versões do Linux e Unix, descarregar arquivos em disco com
            o comando fdatasync do Unix e outros
            métodos parecido é surpreendentemente lento. O método
            padrão que o InnoDB utiliza é a
            função fdatasync. Se você não estiver
            satisfeito com o desempenho da escrita do banco de dados,
            você pode tentar configurar
            innodb_flush_method em
            my.cnf com O_DSYNC,
            embora O_DSYNC pareça ser mais lento em
            alguns sistemas.
          
            Ao importar dados para o InnoDB, esteja
            certo de que o MySQL não está com
            autocommit=1 ligado. Assim cada
            inserção exige uma descarga de log em disco. Coloque antes
            da linha de importação de arquivo do SQL
          
SET AUTOCOMMIT=0;
e depois dele
COMMIT;
            Se você utilizar a opção mysqldump
            --opt, você obterá arquivos dump que são
            mais rápidos de importar também em uma tabela
            InnoDB, mesmo sem colocá-los entre
            SET AUTOCOMMIT=0; ... COMMIT;.
          
            Tome ciência dos grandes rollbacks de inserções em massa:
            o InnoDB utiliza o buffer de inserção
            para economizar E/S de disco em inserções, mas em um
            rollback correspondente tal mecanismo não é usado. Um
            rollback no limite de disco pode demorar cerca de 30 vezes
            mais que a insserção correspondente. Matar o processa de
            banco de dados não irá ajudar pois o rollback irá
            reiniciar ao se entrar no banco de dados. O único modo de
            se livrar de um rollback deste tipo é aumentar a área de
            buffer de forma que o rollback dependa do limite de CPU e
            seja executado rápidamente ou deltar todo o banco de dados
            InnoDB.
          
            Tome ciência também de outras grandeas operações com
            limite de disco. Use DROP TABLE ou
            TRUNCATE (a partiir do MySQL-4.0) para
            esvaziar uma tabela, não DELETE FROM
            suatabela.
          
            Utilize INSERT multi-line para reduzir a
            sobrecarga de comunicação entre o cliente e o servidro se
            você precisar inserir muitas linhas:
          
INSERT INTO suatabela VALUES (1, 2), (5, 5);
            Esta dica é válida para inserções em qualquer tipo de
            tabela, não apenas no InnoDB.
          
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

