2016-01-07 22 views
6

Ho appena scaricato la versione più recente di MySQL Workbench (6.3.6) e ho tentato di esportare una tabella remota (su Google CloudSQL) in csv utilizzando la nuova procedura guidata "esportazione dati tabella". Il tavolo aveva circa 600.000 file e la dimensione finale scaricata era di circa 75 MB. Ci sono volute 7,5 ore.Esportazione dati tabella workbench MySQL estremamente lento

Mi rendo conto che posso utilizzare Google Developer Console per eseguire questa esportazione (cosa che ho fatto, e sono durati circa 15 secondi), ma sembra che qualcosa non funzioni con MySQL Workbench. Potrebbe esserci un problema di configurazione che sta causando questo andare così lentamente?

+1

Curioso, hai esportato il file sul computer locale o remoto? Cambiare questo ha qualche effetto? –

+0

Puoi eseguire un traceroute (mtr è fantastico) tra te e l'IP dell'istanza per diagnosticare la latenza della rete? – Nick

+0

https://stackoverflow.com/questions/33296569/mysql-workbench-table-data-import-wizard-extermely-slow Reffer questo link –

risposta

0

Descrizione: Workbench esporta molto grandi set di dati attraverso la procedura guidata di esportazione CSV. Sproporzionatamente lento comapred a un set più piccolo. Tuttavia, questo è qualcosa che ho incontrato prima con .NET.

Come ripetere: Ottenere una tabella con 15 o più record o più ed esportare tramite la procedura guidata. Nota quanto tempo ci vuole e quindi esporta un sottoinsieme di quei dati e vedi come il tempo impiegato non è correlato linearmente con la quantità di righe.

consigliata correzione: Qualcosa che ho notato quando la creazione di applicazioni di esportazione CSV è che il quadro di MS .NET non può trattare con enormi corde molto bene, e tende a svolgere male come risultato.

Ho trovato una soluzione però. Quando si crea l'enorme stringa per il dump nel file quando si è finito di generarlo, invece di costruire 1 stringa enorme e scriverlo in un file tutto in una volta quando l'esportazione è terminata, ottengo prestazioni molto migliori solo facendo alcuni centinaia di file di CSV generati alla volta, scriverli nel file e svuotare il buffer su cui sono stati scritti i dati generati.

Si consiglia di scrivere su un file temporaneo, quindi rinominarlo/spostarlo in quello specificato dell'utente al termine. Scrivere in temp e quindi spostare/rinominare è il modo in cui Photoshop e altre applicazioni salvano i propri dati. E la scrittura di x righe e flushing che ho trovato durante lo sviluppo di me stesso è molto più veloce che cercare di ottenere .NET per gestire una stringa da 20 MB.