Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] MySQL e o InnoDB Plugin - Performance e Formato de Arquivo

Recommended Posts

Muitos administradores de bancos de dados, e também os muitos desenvolvedores que no início de vários sistemas desempenham essa atividade, já usam o InnoDB Plugin, por ele apresentar performance melhor em até 1600% em relação a versões anteriores, quando o servidor de bancos de dados MySQL ainda utilizava somente o InnoDB chamado de Built-in ou nativo.

 

O InnoDB Plugin, além de performance muito melhor e também maior capacidade no tratamento de maior quantidade de transações concorrentes, com a melhoria continua do seu kernel, oferece compressão de dados e vários outros recursos que listo abaixo:

 

  • Fast Index Creation, que é, na verdade, a criação e a exclusão de índices de maneira muito mais otimizada, baseado na ordenação de índices da tabela que é target da alteração de sua estrutura;
  • Data Compression, o que permite que os arquivos de dados economizem I/O e espaço em disco;
  • Novas tabelas foram adicionadas ao INFORMATION_SCHEMA, na busca de prover melhor monitoramento de bloqueios e compressão de dados;
  • Gerenciamento do formato dos arquivos do InnoDB para que os tipos de arquivos sejam reconhecidos possibilitando a utilização tanto de formatos antigos quanto formatos mais atuais.

Várias melhorias foram realizadas no InnoDB Plugin, tendo sua versão mais atual disponível no MySQL 5.5. Podemos ver abaixo o resultado de benchmarks que foram disponibilizados pela equipe de consultores e de engenheiros do MySQL Oracle para demonstrar as melhorias de performance do produto na versão 5.5, que atualmente é aquela que foi homologada para ser utilizada em produção.

36350.jpg

A imagem acima compara as versões anteriores do InnoDB com o novo InnoDB Plugin, uma abordagem bem interessante e com a comprovação do hardware que foi utilizado para gerar as linhas do gráfico com base nos testes realizado no MySQL Labs: um aumento de desempenho ou de performance de 364% em leituras e em escritas concorrentes.

 

Se formos comparar o InnoDB PLugin que temos atualmente ao MyISAM, este que deixou de ser o Storage Engine padrão do MySQL, temos o seguinte cenário em relação à performance:

 

36351.jpg

 

No comparativo acima, entre InnoDB e MyISAM, percebemos que quanto mais cores são endereçadas ao InnoDB, mais desempenho é observado, enquanto que o MyISAM continua com a mesma performance, alinhada ao gráfico, sem quedas e nem subidas na linha que o representa.

 

 

Formatos de arquivo

O mais interessante dos recursos certamente foi a adoção mais explícita dos formatos de arquivos que atualmente estão mais evidentes, uma vez que dá ao MySQL mais performance e disponibilidade e entrega ao seu ambiente todos as melhorias que foram disponibilizadas pela Oracle na versão 5.5 do produto (aguardem comentários sobre esse quesito que farei, utilizando a versão 5.6, que em breve será entregue para utilização em produção).

 

Quando se fala de formatos de arquivos, estamos falando do formato dos tablespaces, pois sua estrutura interna vem mudando e muito desde a versão 5.1, para que mais cada vez mais dados sejam suportados em relação à concorrência de operações e também na busca de melhorar a recuperação de dados.

 

O formato de arquivo na versão Built-In do InnoDB é chamado de "Antelope", enquanto que o novo formato foi batizado como "Barracuda". O formato Antelope é um arquivo não nomeado internamente, no qual as tabelas utilizam o formato de linha COMPACT ou REDUNDANT, possibilitando que o InnoDB armazene 768 bytes para colunas com tipos de dados variáveis (VARCHAR, VARBINARY, TEXT e BLOB) uma entrada no índice B-Tree ou chave primária da tabela. Já o novo formato, o Barracuda, é utilizado para prover todos os novos recursos que o InnoDB Plugin entrega ao mercado e ao usuário final, e seu formato de linha pode ser DYNAMIC ou COMPRESSED.

 

Para manter a compatibilidade entre bancos de dados que utilizam versões novas e versões antigas do MySQL, crie suas tabelas sem a opção ROW_FORMAT, informada no CREATE TABLE.   (Manual InnoDB PLugin)

Interessante observar, então, que existem algumas ações a serem realizadas quando da migração entre versões mais antigas para a versão 5.5 do servidor de bancos de dados MySQL. Você poderá facilmente fazer isso através da utilização do mysqldump para backup dos bancos de dados da versão antiga e restore do arquivo de backup criado na versão 5.5. Mas, antes de efetuar o restore, algumas recomendações interessantes, são:

 

  • Alterar o valor da variável innodb_file_per_table para ser igual 1 (ou seja, habilitado);
  • Alterar o valor da variável innodb_file_format para BARRACUDA;
  • Reinicie o MySQL;

Faça o restore dos dados a partir do seu backup e utilizando o MySQL Enterprise Backup ou o mysql client e, após isso, será necessário alterar o formato de linha, ou seja, a declaração ROW_FORMAT deverá ser igual à COMPRESSED ou DYNAMIC.

 

Fazendo uma leitura do INFORMATION_SCHEMA, podemos facilmente montar um ALTER TABLE para cada tabela do banco de dados, como exibido abaixo:

 

mysql> SHOW TABLES FROM world;

+-----------------+

| Tables_in_world |

+-----------------+

| City            |

| Country         |

| CountryLanguage |

+-----------------+

3 rows in set (0.00 sec)

 

mysql> SELECT CONCAT('ALTER TABLE ', TABLE_SCHEMA,'.',TABLE_NAME, ' ROW_FORMAT=COMPRESSED;') AS CmdAlterTable        

-> INTO OUTFILE '/tmp/alterTable.sql'        

-> FROM INFORMATION_SCHEMA.TABLES        

-> WHERE TABLE_SCHEMA='world';

Query OK, 3 rows affected (0.00 sec)

mysql> SOURCE /tmp/alterTable.sql;

Query OK, 4079 rows affected (0.51 sec)

Records: 4079  Duplicates: 0  Warnings: 0

Query OK, 239 rows affected (0.12 sec)

Records: 239  Duplicates: 0  Warnings: 0

Query OK, 984 rows affected (0.04 sec)

Records: 984  Duplicates: 0  Warnings: 0Pronto, agora as tabelas do seu banco de dados não serão marcadas com uma marca d'água que reconhece seu formato como parte de uma distribuição antiga, e passará a utilizar todos as novas funcionalidades para fazer com que o MySQL tenha melhor desempenho. Assim, o banco de dados Open Source mais utilizado e mais popular do mundo toma mais atenção ao ser percebido como um produto muito confiável, fácil de manipular, rápido, escalável e robusto. 

 

A Oracle disponibiliza, além de suporte em português em que você fala direto com os engenheiros do MySQL, em ritmo 24x7, um time de consultores especializados e certificados no produto e também uma equipe de vendas pronta a atender ao cliente que deseja conhecer mais sobre a versão Enterprise e CGE do produto.

 

Do ponto de vista dos negócios, o MySQL facilmente se encaixará na demanda interna de qualquer empresa, para suporte a sistemas de quaisquer tamanhos, visto que o MySQL só será limitado ao hardware utilizado. Quanto mais velocidade no processamento de escritas e recuperação de dados, mais velocidade para atender clientes, mais rápido uma empresa entrega seus produtos e sem perder qualidade e escala.

 

Nos falamos em breve, Happy MySQL'ing.

 

 

 

http://imasters.com.br/artigo/20730/mysql/mysql-e-o-innodb-plugin-performance-e-formato-de-arquivos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.