Domanda

Ok ragazzi ho scaricato la discarica wikipedia xml e la sua un enorme 12 GB di dati: \ per un tavolo e ho voluto importare in mysql databse sul mio localhost - tuttavia è un 12GB di file humongous e, ovviamente, prendendo il suo navicats dolce tempo nell'importazione o la sua più probabile la sua impiccato:. (

C'è un modo per includere questa discarica o almeno parzialmente, al massimo si sa poco a poco.


Lasciatemi corretto che la sua 21 GB di dati - non che aiuta:. \ - Se uno ha la minima idea di importare file humongous come questo in database MySQL

È stato utile?

Soluzione

Utilizzare la riga di comando, invece, Navicat è orribile per l'importazione di file di grandi dimensioni e probabilmente ci vorranno 20 volte più a lungo utilizzando il CLI.

Altri suggerimenti

Date un'occhiata in Sax parser che consente di leggere nel pezzo per pezzo corpus piuttosto che leggere l'intero 12GB in memoria. Io non sono troppo sicuro di come si dovrebbe interfacciarsi con mysql però.

Questa è una domanda abbastanza vecchio, FWIW .. rinfrescante con una nuova risposta. Ho incontrato gli stessi problemi e ore seduti per un singolo file sql massiccia per l'esecuzione può essere rischioso, e in esecuzione in tutte le questioni in pratica significa che si avvia di nuovo. quello che ho fatto per ridurre il rischio e guadagnare un po 'le prestazioni tramite CLI.

  1. dividere il file SQL massiccia in piccoli pezzi più gestibile, ad esempio 'enwiki-20140811-page.sql' suddiviso in circa 75 MB file di dimensioni.

    split -l 75 enwiki-20140811-page.sql split_
    

    produrrà un discreto numero di file con prefisso 'split_' nel nome del file.

  2. iterare su questo elenco di file e importare uno alla volta ... un semplice script di shell in quanto tale.

    for f in $FILES
    do
      echo "Processing $f file..."
      mysql -h $HOST -u $USER -p$PSWD $DB < $f
    done
    

Se questo rompe mai per qualche motivo, si può facilmente riprendere da dove si era interrotto.

spliting il file SQL tramite linea conteggio impedisce di rottura qualsiasi grandi istruzioni INSERT. Tuttavia, se si rilascia il conteggio troppo basso la linea, si potrebbe dividere DROP e CREATE all'inizio del SQL. Questo è facilmente risolto aprendo le prime file divisi e risolvere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top