Qual o Tamanho Que as Tabelas do MySQL Podem Ter?

A Versão 3.22 do MySQL tem suporte para tabelas com limite de tamanho até 4G. Com o novo MyISAM no MySQL versão 3.23 o tamanho máximo foi expandido até 8 milhões de terabytes (2 ^ 63 bytes). Com este tamanho de tabela maior permitido, o tamanho máximo efetivo das tabelas para o banco de dados MySQL é normalmente limitado pelas restrições do sistema operacional quanto ao tamanho dos arquivos, não mais por limites internos do MySQL.

A seguinte tabela lista alguns exemplos do limite do tamanho de arquivos do sistema operacional:

Sistema Operacional

Limite do tamanho do arquivo

Linux-Intel 32 bit

2G, muito mais usando LFS

Linux-Alpha

8T (?)

Solaris 2.5.1

2G (É possível 4GB com patch)

Solaris 2.6

4G (pode ser alterado com parâmetro)

Solaris 2.7 Intel

4G

Solaris 2.7 ULTRA-SPARC

8T (?)

No Linux 2.2 você pode ter tabelas maiores que 2 GB usando o patch LFS para o sistema de arquivos ext2. No Linux 2.4 já existem patches para o sistema de arquivos ReiserFS para ter suporte a arquivos maiores. A maioria das distribuições atuais são baseadas no kernel 2.4 e já incluem todos os patches Suporte a Arquivos Grandes (Large File Support - LFS) exigidos. No entanto, o tamanho máximo disponível ainda depende de diversos fatores, sendo um deles o sistema de arquivos usado para armazenar as tabelas MySQL.

Para um visão mais detalhada sobre LFS no Linux, dê uma olha na página Andreas Jaeger's "Large File Support in Linux" em http://www.suse.de/~aj/linux_lfs.html.

Por padrão, o MySQL cria tabelas MyISAM com uma estrutura interna que permite um tamanho máximo em torno de 4G. Você pode verificar o tamanho máximo da tabela com o comando SHOW TABLE STATUS ou com o myisamchk -dv nome_tabela .

Se você precisa de tabelas maiores que 4G (e seu sistema operacional suporta arquivos grandes), a instrução CREATE TABLE permite as opções AVG_ROW_LENGHT e MAX_ROWS. Use estas opções para criar uma tabela que possa ter mais de 4GB.  Você pode também alterar isso mais tarde com ALTER TABLE.

Outros modos se contornar o limite do tamanho do arquivo das tabelas MyISAM são os seguintes:

Se sua tabela grande será somente leitura, você poderá usar o myisampack para unir e comprimir várias tabelas em uma. mysisampack normalmente comprime uma tabela em pelo menos 50%, portanto você pode obter, com isso, tabelas muito maiores. Outra opção para contornar o limite de tamanho de arquivos do sistema operacional para arquivos de dados MyISAM usando a opção RAID.

Extraido do Manual de Referência do MySQL 4.1