Vai al contenuto
Strumento gratuito

Dividi e comprimi un file SQL con SQL Splitter

Il tuo file SQL è troppo grande per essere importato in phpMyAdmin? SQL Splitter lo comprime come .sql.gz oppure lo suddivide tra istruzioni complete in parti inferiori a 1,9 MB, ad esempio community-db.sql di 98 KB in 20 KB come .sql.gz. Gratis, senza registrazione né caricamento: il tuo file resta nel browser.

Creato da Justin Schuessler

Su un VPS di tua proprietà puoi importare dump di grandi dimensioni dalla console, senza il limite di caricamento di phpMyAdmin.

Il tuo file resta nel browser: non viene caricato né salvato.

Risultato di esempio

Come lo SQL Splitter divide un dump

Il tool verifica prima se il file compresso rientra già nel tuo limite. Altrimenti lo divide tra istruzioni complete e include l'intestazione del dump in ogni parte. L'esempio usa un piccolo mysqldump con dimensione obiettivo 40 KB, così da ottenere più parti; i tuoi risultati dipendono dal file.

Esempio · Input: community-db.sql, 98 KB, 56 istruzioni, 2 tabelle, trigger, procedura e vista

File SQL
98 KB
Come .sql.gz
20 KB
4,9 volte più piccolo
Parti sotto 40 KB
3
Rilevati problemi di importazione
9
DEFINER, CREATE DATABASE/USE, collation MySQL-8
Parti nell'ordine di importazione
community-db-part-001.sql     28 KB   17 Statement  players, scorescommunity-db-part-002.sql     40 KB    3 Statement  scorescommunity-db-part-003.sql     32 KB   18 Statement  scores

Perché usare questo strumento

Uno SQL Splitter con parti davvero importabili

Molti splitter dividono per righe o megabyte, spezzando trigger, procedure o record. Questo tool legge il dump come il client mysql.

Prima comprimi, poi dividi

I dump SQL contengono molto testo ripetuto e, compressi come .sql.gz, spesso diventano molto più piccoli. phpMyAdmin li importa direttamente. Lo strumento calcola prima la dimensione compressa. Se rientra nel tuo limite, non devi suddividere il file.

Divisione solo tra istruzioni complete

Il parser riconosce stringhe con caratteri di escape, commenti con --, # e /* */, righe /*!40101 … */ di mysqldump e blocchi DELIMITER. Un punto e virgola in una stringa o in un blocco DELIMITER non divide le istruzioni.

Gli INSERT di grandi dimensioni vengono divisi per righe

Se un INSERT con molte righe supera la dimensione di una parte, viene suddiviso in più INSERT con la stessa intestazione, sempre tra due record. Se un singolo record è troppo grande, il tool ne segnala il numero e la tabella.

Ogni parte è importabile singolarmente

Set di caratteri, modalità SQL, fuso orario e disattivazione delle chiavi esterne presenti nell'intestazione del dump vengono inclusi in ogni parte; alla fine viene ripristinato tutto. Vengono mantenuti anche USE e DELIMITER attivi.

Correzioni per l'importazione da selezionare

DEFINER, CREATE DATABASE e USE, le collazioni di MySQL 8 e le righe di replica: il tool mostra quante volte compaiono e modifica solo ciò che selezioni. Le correzioni funzionano anche senza dividere il file.

Funziona nel browser, anche con centinaia di MB

I dump contengono spesso dati dei clienti. Il file viene elaborato in streaming da un Web Worker e non lascia il tuo computer. Puoi seguire l'avanzamento e annullare l'operazione senza bloccare la scheda.

Come funziona

Come importare un file SQL di grandi dimensioni in tre passaggi

Dal dump troppo grande al database pronto, senza account né caricamento.

Passaggio 1

Carica un file SQL

Trascina il file .sql, .sql.gz o .zip nell'area. Il tool lo legge nel browser, conta le istruzioni e le tabelle e cerca i problemi di importazione più comuni.

Passaggio 2

Comprimi o dividi

Scegli il limite di caricamento: 2 MB per phpMyAdmin, 8 MB o un valore personalizzato. Se il file .sql.gz rientra nel limite, scarichi un unico file. Altrimenti lo strumento lo divide in parti inferiori alla dimensione impostata (con 2 MB, al massimo 1,9 MB), scaricabili singolarmente o come ZIP, con correzioni per l’importazione facoltative.

Passaggio 3

Importa in phpMyAdmin

Seleziona il database a sinistra, apri la scheda Importa, scegli il file e fai clic su OK. Se ci sono più parti, importale una dopo l'altra, iniziando dalla parte 1. In alternativa, copia una parte e incollala nella scheda SQL.

Messaggi di errore

Perché l'importazione in phpMyAdmin fallisce e come risolvere

I messaggi più comuni durante l'importazione di un file SQL e il passaggio da seguire nel tool.

L'importazione si blocca su «Attendere, il file è in fase di elaborazione.»

Causa: Il file supera il limite di caricamento di phpMyAdmin (da noi 2 MB, indicati come «Dimensione massima: 2.048 KiB»). Spesso phpMyAdmin 5.2 non mostra errori e l'indicatore continua a girare. A seconda delle impostazioni del server, può comparire invece «Nessun dato ricevuto da importare».

Soluzione: Carica il file come .sql.gz. Se è ancora troppo grande, dividilo e importa le parti una dopo l'altra.

«Sembra che la connessione al server sia stata persa» nella scheda SQL

Causa: Il testo incollato è troppo grande. Il browser lo invia codificato: spazi e caratteri speciali occupano il triplo, le interruzioni di riga il sestuplo. Così 1,9 MB di testo superano rapidamente i 2 MB.

Soluzione: Nel tool scegli «Incolla nella console SQL»: le parti resteranno sotto il limite anche una volta codificate.

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

Causa: Viste, trigger o procedure contengono DEFINER con un utente del vecchio server. MariaDB chiama questo privilegio SET USER; per SQL_LOG_BIN nei dump MySQL è BINLOG ADMIN.

Soluzione: Seleziona la correzione «Rimuovi DEFINER» e, per i dump MySQL, «Rimuovi righe di replica».

#1273 Unknown collation: 'utf8mb4_0900_ai_ci'

Causa: Il dump proviene da MySQL 8. MariaDB non supporta questa collation, nemmeno nella versione 11.6.

Soluzione: Seleziona la correzione «Sostituisci le collazioni di MySQL 8».

#1193 Variabile di sistema sconosciuta 'GTID_PURGED'

Causa: Il dump proviene da un server MySQL con replica GTID. Questa riga esiste solo in MySQL.

Soluzione: Seleziona la correzione «Rimuovi righe di replica».

#1044 Access denied for user … to database …

Causa: Il dump crea un database con CREATE DATABASE o passa con USE a un database a cui il tuo utente non ha accesso.

Soluzione: Seleziona la correzione «Rimuovi CREATE DATABASE e USE» e prima scegli il database corretto a sinistra.

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

Causa: Una parte inserisce dati le cui righe collegate arrivano solo in una parte successiva.

Soluzione: Il tool disattiva il controllo delle chiavi esterne in ogni parte. Importa comunque le parti nell'ordine previsto.

#1050 Table already exists o #1062 Duplicate entry

Causa: Una parte è stata importata due volte, spesso dopo un'interruzione.

Soluzione: Non ricominciare da capo: riprendi dalla parte in cui l'importazione si è interrotta. Se hai dubbi, svuota il database e ricomincia.

La soluzione giusta

Comprimere, dividere o usare un altro strumento?

Dividere il file non è sempre la soluzione migliore. Ecco come decidere in un minuto.

Percorso 1

Comprimi (.sql.gz)

La via più rapida se il file compresso rientra nel limite: un file, un'importazione, nessuna modifica.

Percorso 2

Dividi con questo SQL Splitter

Se anche il file .sql.gz è troppo grande e hai solo phpMyAdmin. Servono più caricamenti, ma nessun software aggiuntivo.

Percorso 3

HeidiSQL o un altro client database

Per dump molto grandi o singoli record oltre il limite. Il client si connette direttamente al database, senza limiti di caricamento. Su Windows: File, Esegui file SQL.

Percorso 4

Client mysql da console

Se hai un VPS o accesso SSH: mysql -u benutzer -p datenbank < dump.sql importa senza il limite di caricamento di phpMyAdmin; per un file .gz usa zcat.

Scopri di più

Altri strumenti

FAQ

Domande frequenti

Risposte brevi sulle importazioni in phpMyAdmin, sui dump SQL e su questo SQL Splitter.

Un file .sql.gz importabile direttamente in phpMyAdmin oppure più file .sql, ciascuno sotto il tuo limite, disponibili singolarmente e in un archivio ZIP. Se vuoi, anche come .sql.gz e come testo da copiare. Da community-db.sql di 98 KB si ottiene un file .sql.gz di 20 KB; dividendolo con dimensione obiettivo 40 KB, si ottengono 3 parti, ciascuna con l'intestazione del dump, nell'ordine in cui devi importarle. Il tool mostra inoltre dimensione, istruzioni e tabelle per ogni parte.

phpMyAdmin riceve i file tramite PHP, che limita le dimensioni dei caricamenti (upload_max_filesize e post_max_size). Sui nostri server di database il limite è di 2 MB; phpMyAdmin lo mostra nella sezione Importa come «Dimensione massima: 2.048 KiB». Anche il testo che incolli nella scheda SQL è soggetto a questo limite. Per questo lo strumento offre la modalità «Incolla nella console SQL»: calcola le dimensioni effettivamente inviate dal browser e crea parti più piccole di conseguenza.

Spesso sì. Il limite si applica al file caricato, cioè a quello compresso, e i dump SQL contengono molto testo ripetuto. phpMyAdmin decomprime i file .sql.gz durante l’importazione. SQL Splitter calcola prima le dimensioni del file .sql.gz, ti mostra quante volte è più piccolo e consiglia di dividerlo solo se il file compresso supera ancora il tuo limite.

Carica nel SQL Splitter un file .sql, .sql.gz o .zip, ad esempio un'esportazione da mysqldump, mariadb-dump, phpMyAdmin, HeidiSQL o Adminer. La suddivisione avviene solo tra istruzioni complete: lo strumento riconosce stringhe con caratteri di escape, commenti, righe /*!…*/ e blocchi DELIMITER per trigger e procedure; i punti e virgola al loro interno non dividono le istruzioni. Se un INSERT con molte righe supera la dimensione di una parte, viene suddiviso tra due record in più INSERT con la stessa intestazione. Se un singolo record supera da solo la dimensione impostata, di solito per un'immagine in una colonna BLOB, lo strumento indica il numero dell'istruzione, la riga e la tabella. Puoi importare quella parte con HeidiSQL o con il client mysql, oppure provare a caricarla come .sql.gz.

Importa le parti in ordine numerico, iniziando dalla parte 1, tutte nello stesso database. La parte 1 contiene di solito le istruzioni CREATE TABLE; le parti successive riempiono le tabelle. Se il dump contiene chiavi esterne, ogni parte disattiva il relativo controllo all'inizio e lo riattiva alla fine. Se l'importazione di una parte si interrompe, risolvi l'errore e riprendi da quella stessa parte. Non importare di nuovo le parti precedenti, altrimenti riceverai «Table already exists» o «Duplicate entry». Se non sai più cosa è già stato importato, svuota il database (in phpMyAdmin, seleziona ed elimina tutte le tabelle nella scheda Struttura) e ricomincia dalla parte 1.

Viste, trigger, procedure ed eventi memorizzano l'utente con cui vengono eseguiti (DEFINER). Se è indicato un utente del vecchio server, per esempio root, il tuo utente del database non può crearli. Seleziona «Rimuovi DEFINER» nel tool: il server li creerà con il tuo utente. MariaDB chiama il permesso mancante SET USER. Se il dump proviene da MySQL, anche le righe SQL_LOG_BIN (permesso BINLOG ADMIN) e GTID_PURGED causano errori: per queste c'è «Rimuovi le righe di replica».

utf8mb4_0900_ai_ci è la collation predefinita di MySQL 8. MariaDB non la riconosce, nemmeno nella versione 11.6, e interrompe CREATE TABLE con l’errore #1273. La correzione «Sostituisci le collation di MySQL 8» sostituisce questa e le altre varianti 0900 con utf8mb4_unicode_ci e quelle che distinguono maiuscole e minuscole con utf8mb4_bin. Le istruzioni INSERT, e quindi i tuoi dati, restano invariati.

No. Un dump contiene spesso dati dei clienti e credenziali di accesso: per questo il tool legge il file solo nel tuo browser, tramite un Web Worker. Nessun caricamento, nessun salvataggio e nessun account. Nella scheda Rete degli strumenti per sviluppatori puoi verificare che la compressione e la divisione non generino richieste contenenti il tuo file.

Hai altre domande?

Contatta il supporto
Database più grandi?

Il tuo database senza limiti di caricamento sul tuo VPS

Con un VPS ZAP-Hosting hai accesso root, puoi importare dump di grandi dimensioni dalla console e gestire MySQL, MariaDB o PostgreSQL come preferisci.

4,4/5 Trustpilot32.000+ Server attiviDal 2010

Nessuna configurazione. Nessun rischio. Online in pochi secondi.

Durata flessibileDisdicibile in qualsiasi momentoOnline in 60 secondi

Cerchi altri strumenti? Visualizza tutti gli strumenti per sviluppatori