2016-06-02 9 views
0

Ich verwende diesen Code, um eine Verbindung zur Datenbank herzustellen, wählen Sie eine Tabelle aus und schreiben Sie alles, was in dieser Tabelle ist, in eine separate Datei. Die Tabelle hat mehr als 1 Millionen Datensätze und es lief zuerst gut, aber als der Code begann 900.000. Rekord zu schreiben, wird der Computer sehr verlangsamt. PyCharm bittet mich ständig, mehr Speicher zuzuweisen und wenn die ersten 500k-Datensätze in 1 Stunde erstellt wurden, dauert es jetzt 1 Stunde, um 50-100 Datensätze zu schreiben.Speicherprobleme beim Schreiben von MySQL

Ich habe Gedanken, dass es irgendwie mit der Freigabe der Erinnerung verbunden sein sollte, aber ich weiß wirklich nicht, wie es geht.

Jede Hilfe wäre willkommen.

Antwort

0

Müssen Sie den Cursor schließen? Es sieht so aus, als würden Sie bei jeder Iteration eine neue öffnen, was den Speichermangel nach einigen hunderttausend Iterationen erklären würde.

db.connect() sentenceTB = sentenceTB.select() für i Satz in Aufzählen (sentenceTB): mit offenem ('./ Kommentar/Satz% i.txt' % i, 'w', encoding = 'UTF-8') als f: f.write (sentence.SNTENC) cursor.close() db.Close()

+0

es tut uns so lange nicht zu beantworten. Nein, der Cursor sollte nicht geschlossen sein, ich wiederhole über 1.7 Mil Einträge auf einmal. Die Lösung wurde hart codiert: Ich habe diese Tabelle in eine andere Tabelle mit automatischer Nummerierungszeile kopiert und in 5 Iterationen 1,7 Mil-Einträge gespeichert. Das dauerte drei Tage, aber ich konnte keine bessere Lösung für diesen Moment finden. –

Verwandte Themen