En MySQL 5.0, usando el motor de almacenamiento
MyISAM
, el máximo tamaño de las tablas es
de 65536 terabytes (256 ^ 7 - 1 bytes). Por lo tanto, el tamaño
efectivo máximo para las bases de datos en MySQL usualmente los
determinan los límites de tamaño de ficheros del sistema
operativo, y no por límites internos de MySQL.
El motor de almacenamiento InnoDB
mantiene
las tablas en un espacio que puede ser creado a partir de varios
ficheros. Esto permite que una tabla supere el tamaño máximo
individual de un fichero. Este espacio puede incluir particiones
de disco, lo que permite tablas extremadamente grandes. El
tamaño máximo del espacio de tablas es 64TB.
La siguiente tabla lista algunos ejemplos de límites de tamaño de ficheros de sistemas operativos. Esto es sólo una burda guía y no pretende ser definitiva. Para la información más actual, asegúrese de consultar la documentación específica de su sistema operativo.
Sistema operativo | Tamaño máximo de fichero |
Linux 2.2-Intel 32-bit | 2GB (LFS: 4GB) |
Linux 2.4 | (usando sistema de ficheros ext3) 4TB |
Solaris 9/10 | 16TB |
Sistema de ficheros NetWare w/NSS | 8TB |
win32 w/ FAT/FAT32 | 2GB/4GB |
win32 w/ NTFS | 2TB (posiblemente mayor) |
MacOS X w/ HFS+ | 2TB |
En Linux 2.2, puede utilizar tablas MyISAM
mayores de 2GB usando el parche para LFS (Large File Support) en
el sistema de ficheros ext2. En Linux 2.4 y posteriores, existen
parches para ReiserFS soportando grandes archivos (hasta 2TB).
La mayoría de distribuciones Linux se basan en el kernel 2.4 o
2.6 e incluyen todos los parches LFS necesarios. Con JFS y XFS,
se permiten ficheros mayores de un petabyte para Linux. Sin
embargo, el tamaño máximo de ficheros todavía depende de
diversos factores, uno de ellos siendo el sistema de ficheros
usado para almacenar tablas MySQL.
Para un resumen más detallado acerca de LFS en Linux, recomendamos la página de Andreas Jaeger Large File Support in Linux en http://www.suse.de/~aj/linux_lfs.html.
Usuarios de Windows, por favor tengan en cuenta que: FAT and VFAT (FAT32) no se consideran apropiados para sistemas de producción con MySQL. Use NTFS para ello.
Por defecto, MySQL crea tablas MyISAM
con una
estructura interna que permite un tamaño máximo de unas 4GB.
Puede chequear el tamaño máximo de tabla para una tabla con el
comando SHOW TABLE STATUS
o con
myisamchk -dv
tbl_name
. Consulte
Sección 13.5.4, “Sintaxis de SHOW
”.
Si necesita una tabla MyISAM
con un tamaño
mayor a 4GB (y su sistema operativo soporta ficheros grandes),
el comando CREATE TABLE
permite las opciones
AVG_ROW_LENGTH
y MAX_ROWS
.
Consulte Sección 13.1.5, “Sintaxis de CREATE TABLE
”. También puede cambiar
esas opciones con ALTER TABLE
una vez que la
tabla se ha creado, para aumentar el tamaño máximo de la
tabla. Consulte Sección 13.1.2, “Sintaxis de ALTER TABLE
”.
Otros métodos para cambiar los límites de tamaño de ficheros
para tablas MyISAM
son:
Si una tabla es de sólo lectura, puede usar myisampack para comprimirla. myisampack normalmente comprime una tabla al menos un 50%, lo que permite, a efectos prácticos, tablas mucho mayores. myisampack puede mezclar múltiples tablas en una misma tabla. Consulte Sección 8.2, “myisampack, el generador de tablas comprimidas de sólo lectura de MySQL”.
MySQL incluye la biblioteca MERGE
que
permite tratar una colección de tablas
MyISAM
con una estructura idéntica en
una tabla MERGE
. Consulte
Sección 14.2, “El motor de almacenamiento MERGE
”.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.