MySQL InnoDB: Tamanho de Página

O MySQL – ou mais precisamente, o InnoDB – trouxe recentemente uma mudança drástica nos tamanhos possíveis de páginas da TABLESPACE, que definem o tamanho dos blocos armazenados em disco e memória.

Até a versão 5.7.5 o tamanho de página, definido pelo parâmetro innodb_page_size, podia ser de 4k, 8k e 16k. Na versão 5.7.6, adicionamente, são permitidos os tamanhos de 32k e 64k.

Para quem não conhece MySQL, ele é assim mesmo: mudanças drásticas em parâmetros acontecem “de uma hora para outra”, então é necessário sempre estar atento à documentação.

Este limite supera o de bancos de dados comercias, como o Oracle e SQL Server. E se o sistema de arquivos estiver alinhado com este tamanho de página, o aproveitamento é completo.

Sistemas OLTP geralmente são beneficiados por tamanho de página menores, enquanto que sistemas OLAP / BI / DSS geralmente são beneficiados por tamanho de páginas maiores.

Um dos benefícios desta flexibilidade é que em sistemas OLTP, na maioria das vezes é lida uma ou poucas linhas, então não faz sentido ler 64k para ler uma linha de, digamos, 200 bytes. Já os sistemas OLAP / BI / DSS muitas vezes lêem o objeto completo, então se beneficia da condição oposta.

Para alterar o tamanho de página, é necessário reconstrutir a TABLESPACE, o que no caso do MySQL significa reconstruir o banco todo, via backup / restore lógico.

5.7.5

5.7.6

Documentação: http://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html#statvar_Innodb_page_size

2 comments

  1. Muito Interessante Portilho ,esse engine por ter as características transacionais e trabalhar com paginação é saber que ele faz row locking ,diferentemente do outro engine do MySQL o MyISAM que faz table locking,obviamente um transacional e outro não .
    O legal do MySQL é essa opção de escolher os engine ao gosto do freguês .
    Parabéns pelo post.

    1. Sim, os Engines são a grande força do MySQL, e uma fonte de grande complexidade, pois cada um tem suas regras para Tuning e Recovery, além das diferenças transacionais.
      Obrigado pela visita Adriano.

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.