El archivo MySqlibdata1 es demasiado grande, ¿cómo reducirlo?
El archivo MySQL ibdata1 es demasiado grande. ¿Cómo reducir?
Si MySql innodb es un espacio de tabla * * *, entonces el archivo de ibdata1 se hace cada vez más grande, alcanzando más de 30 gy algunas tablas inútiles se borran:
Truncar tabla xxx p>
Entonces optimizar la tabla xxx no tiene ningún efecto
Porque no tiene ningún efecto en el espacio de tabla * * *.
Mysql ibdata1 almacena datos, índices, etc. , que son los datos más importantes en MySQL.
Si los datos no se almacenan por separado, el tamaño de este archivo puede aumentar fácilmente hasta gigabytes, o incluso decenas de gigabytes, lo que no es muy adecuado para algunas aplicaciones. Por lo tanto, este archivo debería reducirse.
La reducción automática no es posible. Debe exportar los datos, eliminar ibdata1 y luego importar los datos. Esto es más problemático y requiere un archivo separado para cada tabla.
Solución: almacenar los archivos de datos por separado (cómo cambiar el espacio de tabla compartido a un archivo de espacio de tabla independiente para cada tabla).
Los pasos son los siguientes:
1) Realizar una copia de seguridad de la base de datos
Ingrese MySQL Server 5.0\bin desde la línea de comando.
Haga una copia de seguridad de todas las bases de datos y ejecute el comando.
d:\>MySQL dump -q-umysql-PP assword-add-drop-table-all-databases>c:/all.sql
Después de este paso, detenga el servicio de base de datos.
2) Busque el archivo my.ini o my.cnf.
Ejecutado bajo Linux. /mysqld-verbose-help | grep -a 1 'Opciones predeterminadas'
Aparecerá una pantalla similar:
Las opciones predeterminadas se leen de los siguientes archivos en el orden indicado:
/etc/my . CNF ~/. mi . CNF/usr/local/service/MySQL 3306/etc/my . >mysqld-verbose-help gt;mysqlhelp.txt
Bloc de notas mysqlhelp.txt
Busque las opciones predeterminadas en él y podrá ver el orden de búsqueda de my.ini para Encuentra el directorio real.
3) Modificar el archivo de configuración mysql
Abrir el archivo my.ini o my.cnf.
Agregue la siguiente configuración en [mysqld]
innodb_file_per_table=1
Para verificar si la configuración es válida, puede reiniciar mysql y ejecutarlo.
Mostrar variables, como "per_table"
Compruebe si la variable innodb_file_per_table está activada.
4) Eliminar el archivo de datos original.
Elimine el archivo ibdata1 original y el archivo de registro ib_logfile*, y elimine la carpeta de la base de datos de la aplicación en el directorio de datos (la carpeta mysql no se elimina).
5) Restaurar la base de datos
Iniciar el servicio de base de datos
Ingrese MySQL Server 5.0\bin desde la línea de comando.
Restaura todas las bases de datos y ejecuta el comando mysql -uusername -pyourpassword.
Después de los pasos anteriores, podemos ver que el nuevo archivo ibdata1 tiene solo unas decenas de metros de largo, y los datos e índices se han convertido en pequeños archivos ibd para una sola tabla, en la carpeta correspondiente a la base de datos. .