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
See Secção 4.6.8, “Sintaxe de SHOW
”.
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. See Secção 6.5.3, “Sintaxe CREATE TABLE
”. Você pode também
alterar isso mais tarde com ALTER TABLE
. See
Secção 6.5.4, “Sintaxe 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. See
Secção 4.8.4, “myisampack
, O Gerador de Tabelas Compactadas de
Somente Leitura do MySQL”.
Outra opção para contornar o limite de tamanho de arquivos
do sistema operacional para arquivos de dados
MyISAM
usando a opção
RAID
. See Secção 6.5.3, “Sintaxe CREATE TABLE
”.
O MySQL
incluí uma biblioteca
MERGE
que permite acessar uma coleção
de tabelas idênticas como se fosse apenas uma. See
Secção 7.2, “Tabelas MERGE
”.
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.