Mi archivo ibdata es muy grande, al menos me parece muy grande. ¿Es esto excesivo o no tan malo?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Mi archivo ibdata es muy grande, al menos me parece muy grande. ¿Es esto excesivo o no tan malo?
-rw-rw---- 1 mysql mysql 15G Apr 18 10:11 ibdata1
Respuestas:
Si se ejecuta show table status
en una tabla y el Data_free
campo constituye la gran mayoría del ibdata1
tamaño de su archivo, es posible que tenga mucho espacio desperdiciado. Una gran cantidad de inserción / eliminación hará que eso sea un problema. Si ese es el caso y las inserciones y eliminaciones transitorias constituyen la mayor parte de sus datos, entonces tiene un buen caso para el archivo por tabla.
Sin embargo, ese no es un "sí" automático. Se habla mucho en el mundo sobre la fragmentación interna dentro de los archivos de InnoDB, pero ponerlos en un sistema de archivos como archivo por tabla simplemente mueve su fragmentación al nivel del sistema de archivos en lugar del nivel de la base de datos.
Piense en su archivo InnoDB como un sistema de archivos en lugar de un archivo. Si tiene muchos archivos, necesitará un gran sistema de archivos.
En su mayor parte, los sistemas de archivos funcionan muy bien para escalar y manejar terabytes de datos y un sinnúmero de archivos. A veces se topan con problemas con una indexación deficiente (por ejemplo, límites en la cantidad de archivos en un directorio antes de un impacto en el rendimiento), pero en su mayor parte el sistema de archivos moderno puede alcanzar el rango de terabytes.
InnoDB funciona de la misma manera. El tamaño de su archivo de datos puede ser enorme ... y, al igual que los grandes sistemas de archivos, puede presentar problemas con la copia de seguridad de sus datos. Sin embargo, al igual que dividir su sistema de archivos en múltiples particiones no ayuda con este problema, tampoco lo hace tratar de manipular innodb. Si bien puedes usar innodb_file_per_table , rara vez lo recomiendo.
Al igual que su sistema de archivos, la mejor respuesta es conocer los límites internamente y trabajar dentro de eso. Comprender los índices y aplicarlos adecuadamente. No intentes dividir InnoDB, no está hecho para eso.
Como estoy luchando por transmitir el concepto de manera constructiva, he aquí una lectura rápida de las palabras mejor que yo: los terabytes no son grandes datos, los petabytes sí .
Recuerdo una diapositiva de marketing de MySQL muy antigua en la que el cliente estaba ejecutando un almacén de datos con algunos terabytes. Hace muchos años. InnoDB o MyISAM, ambos funcionarían. Esto es estándar en el rack de cosas de MySQL.
No se preocupe por una base de datos de 15 GB.
InnoDB free: 7364608 kB
los archivos ibdata no se reducen; si recientemente eliminó algunas tablas o eliminó muchas filas, innodb en su configuración no liberará el espacio libre de nuevo al sistema de archivos. te sugeriría:
de esta forma, podrá recuperar el espacio cada vez que suelte una tabla / base de datos innodb; los archivos idb asociados se eliminarán de inmediato.