Como mencioné en mi anterior entrada, donde comparaba las opciones de configuración por defecto de 5.6 y 5.7, he estado haciendo algunos tests para un tipo particular de carga en varias versiones de MySQL. Lo que he estado comprobando es las diferentes maneras de cargar un archivo CSV (el mismo fichero que usé para comprobar las herramientas de compresión) en MySQL. Aquellos administradores de bases de datos y programadores MySQL con experiencia probablemente ya conozcáis la respuesta, así que podéis saltar a los resultados de 5.7 respecto de 5.6. Sin embargo, la primera parte de este post está dedicado a los desarrolladores/aquellos que dan sus primeros pasos con …
[Lea más]Esta semana hablamos de tamaño, algo que debería preocuparle a cualquier administrador de sistemas a cargo del sistema de backups de cualquier proyecto, y en particular de los backups de una base de datos.
A menudo recibo preguntas sobre cuál es la mejor herramienta de compresión a aplicar en un sistema de copias de seguridad: ¿gzip? ¿bzip2? ¿algún otro?
El entorno de pruebas
Para poder probar diferentes formatos y herramientas, creé un archivo .csv (comma-separated values, valores separados por comas) de tamaño 3.700.635.579 bytes transformando un dump reciente de todos los nodos de la porción europea de España en OpenStreetMap. Tenía un total de 46.741.126 de filas y tenía la siguiente pinta:
171773 38.6048402 -0.0489871 4 2012-08-25 00:37:46 12850816 472193 …[Lea más]
Si estamos intentando exportar en MySQL una base de datos de gran volúmen, o una base de datos no muy voluminosa, pero con una tabla muy grande en un servidor limitado en cuanto a memoria, es muy probable que nos acabemos por encontrar el siguiente error:
mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table
Este problema se produce porque MySQL carga por defecto la tabla completa antes de exportarla (si es un export de una base de datos completa, lo hace tabla a tabla), y en ocasiones la memoria disponible en el servidor no es suficiente.
La solución es muy simple, es utilizar la opción --quick o -q para que MySQL exporte fila a fila en lugar de meter en buffer toda la tabla y agotar la memoria. Ver documentación.
Ejemplo:
…[Lea más]