Memnemonics fike’s Rotating Header Image

September 15th, 2008:

Esperando o PostgreSQL 8.4: tamanho de bloco

    Frenquentemente pergutam se é possível alterar o tamanho de bloco das  tabelas PostgreSQL, até a versão 8.3 (atualmente estável) isso é possível mas é necessário alterar o código-fonte para isso. A próxima versão (8.4) que será lançada, provavelmente em Março de 2009, será mais fazer essa alteração de tamanho de bloco. Ainda é na etapa de compilação do PostgreSQL mas agora é parâmetro do ./configure. Além de alterar o tamanho de bloco das tabelas, será possível alterar o tamanho dos arquivos do WAL, do tamanho total de cada tabela gerenciada pelo TOAST(depois eu escrevo uma nota sobre o TOAST), etc.

    Apesar de ainda de estas opções ainda estarem no estágio de compilação/instalação, essas novas funcionalidades permitem melhor ajuste do PostgreSQL para ambientes OLTP, Web ou Datawarehouse (vulgo BI).

   No 8.4 você poderá alterar:
 

- Tamanho de bloco das tabelas: –with-blocksize -> Valores possíveis (1, 2, 4, 8, 16, 32, 64)

- Tamanho máximo das tabelas gerenciadas pelo TOAST: –with-segsize -> Valores em GigaByte (Até o limite do Sistema Operacional/Sistema de Arquivo)

- Tamanho dos blocos do WAL: –with-wal-blocksize -> Valores possíveis ( 1, 2, 4, 8, 16, 32, 64)

- Tamanho dos arquivos do WAL–with-wal-segsize-> Valores possíveis (1, 2, 4, 8, 16, 32, 64)
 

   Esses novos parâmetros ajudam a melhorar a perforamance do PostgreSQL ajustando so blocos conforme o tipo de uso do banco de dados, seja OLTP, BI ou WEB. De modo geral só mexe-se nesses parâmetros se tem bom conhecimento de banco de dados e Sistema Operacionais, mudar usando receitas de bolos pode ter alguns resultados desastrosos e culparem o banco de dados. ;)

  Observação importante é que se precisar alterar os tamanhos dos blocos do WAL ou dos arquivos do WAL não precisará criar novamente um cluster, somente recompilar e instalar novamente. :)