Saltar al contenido
Herramienta gratuita

Divisor SQL: divide y comprime archivos SQL

¿Tu archivo SQL es demasiado grande para importarlo en phpMyAdmin? SQL Splitter lo comprime como .sql.gz o lo divide entre instrucciones completas en partes de menos de 1,9 MB; por ejemplo, community-db.sql con 98 KB pasa a ocupar 20 KB como .sql.gz. Gratis, sin registrarte y sin subir archivos: tu archivo permanece en el navegador.

Creado por Justin Schuessler

En tu propio VPS puedes importar dumps grandes desde la consola, sin el límite de subida de phpMyAdmin.

Tu archivo permanece en tu navegador: no se sube ni se guarda.

Resultado de ejemplo

Así divide un volcado el SQL Splitter

Primero, la herramienta comprueba si el archivo comprimido ya está por debajo de tu límite. Si no, lo divide entre sentencias completas y añade la cabecera del volcado a cada parte. El ejemplo usa un pequeño volcado de mysqldump con un tamaño objetivo de 40 KB para generar varias partes; tus resultados dependerán de tu archivo.

Ejemplo · Entrada: community-db.sql, 98 KB, 56 sentencias, 2 tablas, trigger, procedimiento y vista

Archivo SQL
98 KB
Como .sql.gz
20 KB
4,9 veces más pequeño
Partes por debajo de 40 KB
3
Se han encontrado problemas de importación
9
DEFINER, CREATE DATABASE/USE, intercalación de MySQL 8
Partes en orden de importación
community-db-part-001.sql     28 KB   17 Sentencias  players, scorescommunity-db-part-002.sql     40 KB    3 Sentencias  scorescommunity-db-part-003.sql     32 KB   18 Sentencias  scores

Por qué esta herramienta

Un SQL Splitter cuyas partes sí se pueden importar

Muchos divisores cortan por líneas o megabytes y fragmentan triggers, procedimientos o registros. Este lee el volcado como el cliente mysql.

Primero comprime, luego divide

Los dumps SQL contienen mucho texto repetido y, al comprimirlos como .sql.gz, suelen ocupar mucho menos; phpMyAdmin los importa directamente. La herramienta calcula primero el tamaño comprimido. Si queda por debajo de tu límite, no necesitas dividir el archivo.

Solo divide entre sentencias completas

El analizador reconoce cadenas con caracteres escapados, comentarios con --, # y /* */, las líneas /*!40101 … */ de mysqldump y los bloques DELIMITER. Un punto y coma dentro de una cadena o un bloque DELIMITER no separa instrucciones.

Los INSERT grandes se dividen por filas

Si un INSERT con muchas filas supera el tamaño de una parte, se divide en varios INSERT con la misma cabecera, siempre entre dos registros. Si un registro individual es demasiado grande, se indica su número y su tabla.

Cada parte se puede importar por separado

El juego de caracteres, el modo SQL, la zona horaria y la desactivación de las claves foráneas de la cabecera del volcado se incluyen en cada parte; al final, se restablece todo. También se conservan el USE activo y DELIMITER.

Correcciones de importación mediante casillas

DEFINER, CREATE DATABASE y USE, intercalaciones de MySQL 8 y líneas de replicación: la herramienta muestra cuántas veces aparecen y solo modifica lo que marques. También puedes aplicar las correcciones sin dividir el archivo.

Funciona en el navegador, incluso con cientos de MB

Los volcados suelen contener datos de clientes. El archivo se procesa por streaming en un Web Worker y no sale de tu equipo. Puedes ver el progreso y cancelar el proceso sin que la pestaña se bloquee.

Cómo funciona

Cómo importar un archivo SQL grande en tres pasos

Del volcado demasiado grande a la base de datos lista, sin cuenta ni subidas.

Paso 1

Cargar archivo SQL

Arrastra el archivo .sql, .sql.gz o .zip al recuadro. La herramienta lo lee en el navegador, cuenta las sentencias y tablas y busca problemas de importación habituales.

Paso 2

Comprimir o dividir

Elige el límite de subida: phpMyAdmin 2 MB, 8 MB o un valor personalizado. Si el archivo .sql.gz no supera ese límite, descargas un único archivo. De lo contrario, la herramienta lo divide en fragmentos inferiores al tamaño elegido (con 2 MB, como máximo 1,9 MB), que puedes descargar por separado o como ZIP, con correcciones de importación si quieres.

Paso 3

Importar en phpMyAdmin

Selecciona la base de datos a la izquierda, abre la pestaña Importar, elige el archivo y pulsa OK. Si hay varias partes, impórtalas una tras otra, empezando por la parte 1. También puedes copiar una parte y pegarla en la pestaña SQL.

Mensajes de error

Por qué falla la importación en phpMyAdmin y cómo solucionarlo

Los mensajes más frecuentes al importar un archivo SQL y el paso correspondiente en la herramienta.

La importación se bloquea en «Por favor, espere, se está procesando el archivo».

Causa: El archivo supera el límite de subida de phpMyAdmin (en nuestro caso, 2 MB, indicado como «Tamaño máximo: 2.048 KiB»). phpMyAdmin 5.2 suele no mostrar ningún error y el indicador simplemente sigue girando. Según la configuración del servidor, puede aparecer «No se han recibido datos para importar».

Solución: Súbelo como .sql.gz. Si sigue siendo demasiado grande, divídelo e importa las partes una tras otra.

«Parece que se ha perdido la conexión con el servidor» en la pestaña SQL

Causa: El texto pegado es demasiado grande. El navegador lo envía codificado: los espacios y caracteres especiales ocupan el triple, y los saltos de línea, seis veces más. Así, 1,9 MB de texto pueden superar rápidamente los 2 MB.

Solución: Selecciona «Pegar en la consola SQL» en la herramienta: así, las partes también quedan por debajo del límite una vez codificadas.

#1227 Access denied; you need (at least one of) the SUPER privilege(s)

Causa: Las vistas, los triggers o los procedimientos incluyen DEFINER con un usuario del servidor antiguo. MariaDB llama a este permiso SET USER; para SQL_LOG_BIN de los volcados de MySQL, se llama BINLOG ADMIN.

Solución: Marca las correcciones «Eliminar DEFINER» y, para volcados de MySQL, «Eliminar líneas de replicación».

#1273 Unknown collation: 'utf8mb4_0900_ai_ci'

Causa: El dump procede de MySQL 8. MariaDB no admite esta intercalación, ni siquiera en la versión 11.6.

Solución: Marca la corrección «Sustituir intercalaciones de MySQL 8».

#1193 Unknown system variable 'GTID_PURGED'

Causa: El volcado procede de un servidor MySQL con replicación GTID. Esta línea solo existe en MySQL.

Solución: Marca la corrección «Eliminar líneas de replicación».

#1044 Access denied for user … to database …

Causa: El volcado crea una base de datos propia con CREATE DATABASE o cambia con USE a una a la que tu usuario no tiene acceso.

Solución: Marca la corrección «Eliminar CREATE DATABASE y USE» y selecciona antes la base de datos correcta a la izquierda.

#1452 Cannot add or update a child row: a foreign key constraint fails

Causa: Una parte inserta datos cuyas filas relacionadas no llegan hasta una parte posterior.

Solución: La herramienta desactiva la comprobación de claves foráneas en cada parte. Aun así, importa las partes en orden.

#1050 Table already exists o #1062 Duplicate entry

Causa: Se ha importado dos veces una parte, a menudo después de una interrupción.

Solución: No empieces desde cero: continúa con la parte en la que se interrumpió la importación. Si tienes dudas, vacía la base de datos y vuelve a empezar.

La opción adecuada

¿Comprimir, dividir o usar otra herramienta?

Dividirlo no siempre es la mejor solución. Así puedes decidirlo en un minuto.

Ruta 1

Comprimir (.sql.gz)

La opción más rápida si el archivo comprimido está por debajo del límite: un archivo, una importación y ningún cambio.

Ruta 2

Dividir con este SQL Splitter

Si incluso el .sql.gz es demasiado grande y solo dispones de phpMyAdmin. Requiere varias subidas, pero ningún software adicional.

Ruta 3

HeidiSQL u otro cliente de bases de datos

Para volcados muy grandes o registros individuales que superan el límite. El cliente se conecta directamente a la base de datos, sin límite de subida. En Windows: Archivo, Ejecutar archivo SQL.

Ruta 4

Cliente mysql en la consola

Si tienes un VPS o acceso SSH: mysql -u benutzer -p datenbank < dump.sql importa el archivo sin el límite de subida de phpMyAdmin; para un archivo .gz, usa zcat.

Descubrir más

Más herramientas

FAQ

Preguntas frecuentes

Respuestas breves sobre importaciones de phpMyAdmin, volcados SQL y este divisor SQL.

Obtienes un .sql.gz que phpMyAdmin importa directamente o varios archivos .sql, cada uno por debajo de tu límite, disponibles por separado y en un ZIP. Si quieres, también en formato .sql.gz y como texto para copiar. community-db.sql de 98 KB ocupa 20 KB como .sql.gz; al dividirlo con un tamaño objetivo de 40 KB, se generan 3 partes, cada una con la cabecera del volcado y en el orden en que debes importarlas. La herramienta muestra además el tamaño, las sentencias y las tablas de cada parte.

phpMyAdmin recibe los archivos a través de PHP, que limita el tamaño de las subidas (upload_max_filesize y post_max_size). En nuestros servidores de bases de datos, el límite es de 2 MB; phpMyAdmin lo muestra en Importar como «Tamaño máximo: 2.048 KiB». El texto que pegas en la pestaña SQL también está sujeto a ese límite. Por eso, la herramienta incluye el modo «Pegar en la consola SQL»: calcula el tamaño que el navegador envía realmente y crea fragmentos más pequeños según corresponda.

A menudo, sí. El límite se aplica al archivo que subes, es decir, al comprimido, y los volcados SQL contienen mucho texto repetido. phpMyAdmin descomprime los archivos .sql.gz al importarlos. El divisor de SQL calcula primero el tamaño del archivo .sql.gz, te muestra cuánto más pequeño es y solo recomienda dividirlo si el archivo comprimido sigue superando tu límite.

Carga el archivo .sql, .sql.gz o .zip en SQL Splitter; por ejemplo, una exportación de mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL o Adminer. Solo se divide entre instrucciones completas: la herramienta reconoce cadenas con caracteres escapados, comentarios, líneas /*!…*/ y bloques DELIMITER de triggers y procedimientos; un punto y coma dentro de ellos no separa instrucciones. Si un INSERT de muchas filas supera el tamaño de una parte, se divide entre registros en varios INSERT con la misma cabecera. Si un solo registro supera el tamaño objetivo, normalmente por una imagen en una columna BLOB, la herramienta indica el número de instrucción, la línea y la tabla. Importa esa parte con HeidiSQL o el cliente mysql, o intenta subirla como .sql.gz.

Impórtalas por orden numérico, empezando por la parte 1, y todas en la misma base de datos. La parte 1 suele contener las instrucciones CREATE TABLE; las posteriores rellenan las tablas. Si el dump tiene claves foráneas, cada parte desactiva su comprobación al principio y vuelve a activarla al final. Si falla una parte, corrige el error y continúa con esa misma parte. No vuelvas a importar las anteriores o aparecerá «Table already exists» o «Duplicate entry». Si ya no sabes qué se ha importado, vacía la base de datos (en la pestaña Estructura de phpMyAdmin, selecciona todas las tablas y elimínalas) y vuelve a empezar por la parte 1.

Las vistas, los triggers, los procedimientos y los eventos guardan el usuario con el que se ejecutan (DEFINER). Si figura un usuario del servidor anterior, como root, tu usuario de base de datos no podrá crearlos. Marca «Eliminar DEFINER» en la herramienta para que el servidor los cree con tu usuario. MariaDB llama SET USER al permiso que falta. Si el volcado procede de MySQL, también pueden fallar las líneas SQL_LOG_BIN (permiso BINLOG ADMIN) y GTID_PURGED; para ellas está la opción «Eliminar líneas de replicación».

utf8mb4_0900_ai_ci es la intercalación predeterminada de MySQL 8. MariaDB no la reconoce, ni siquiera en la versión 11.6, y devuelve el error #1273 al ejecutar CREATE TABLE. La corrección «Sustituir intercalaciones de MySQL 8» la reemplaza, junto con las demás variantes 0900, por utf8mb4_unicode_ci; las variantes que distinguen mayúsculas de minúsculas se reemplazan por utf8mb4_bin. Las instrucciones INSERT y, por tanto, tus datos permanecen intactos.

No. Un volcado suele contener datos de clientes y credenciales, por eso la herramienta solo lee el archivo en tu navegador mediante un Web Worker. No hay subidas, almacenamiento ni necesitas una cuenta. En la pestaña Red de las herramientas de desarrollador puedes comprobar que, al comprimir o dividir el archivo, no se envía ninguna solicitud que lo contenga.

¿Tienes más preguntas?

Contactar con soporte
¿Bases de datos más grandes?

Tu base de datos sin límite de subida en tu propio VPS

Con un VPS de ZAP-Hosting tienes acceso root, puedes importar dumps grandes desde la consola y ejecutar MySQL, MariaDB o PostgreSQL como prefieras.

4,4/5 Trustpilot32.000+ Servidores activosDesde 2010

Sin configuración. Sin riesgos. En línea en segundos.

Duración flexibleCancelable en cualquier momentoEn línea en 60 segundos

¿Buscas más herramientas? Ver todas las herramientas para desarrolladores