Hallo!
Ich mache einige mysql calls auf meiner lokalen Datenbank von sehr großen Tabellen und erhalte jetzt immer einen MemoryError.
Irgendeine Idee wie ich das lösen kann?
lg
killver
MySql MemoryError
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
hm... hier steht auch so was ähnliches, also das man nicht das ganze Resultat auf einmal in der Speicher holen soll.
Mir ist gerade aber nicht ganz klar, ob es ein Fehler von MySQL an sich ist oder vom MySQLdb Modul?
Gruß, noisefloor
hm... hier steht auch so was ähnliches, also das man nicht das ganze Resultat auf einmal in der Speicher holen soll.
Mir ist gerade aber nicht ganz klar, ob es ein Fehler von MySQL an sich ist oder vom MySQLdb Modul?
Gruß, noisefloor
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
Interessant wäre mal, ob dir mehr RAM helfen würden.
Gruß, noisefloor
IMHO nein. Es liegt ja daran, wie MySQLdb die Daten handelt. Der Ort der DB ist egal.WÜrde mir das überhaupt was helfen, wenn die DB lokal ist?
Interessant wäre mal, ob dir mehr RAM helfen würden.
Die ganzen Iteratoren sind in Python eigentlich sehr effizient - zumal es so wie so die empfohlene Weg ist, wenn man großen Datenmenge (egal aus einer DB oder nicht) handeln muss bzw. will.Hoffe nur es ist dadurch nicht langsamer.
Gruß, noisefloor
@Killver: Wie gross wäre denn so ein Ergebnis gewesen und wie sahen die Ergebnisse aus, so von den Datentypen und dem Umfang her?
Wie /me schon schrieb ist swappen Aufgabe des Betriebssystems und das tut das auch. Zumindest kann ich das bei meinen Python-Programmen beobachten, wenn die Daten umfamgreich genug werden.
Ich vermute mal eher Deine Daten werden so gross, dass sie nicht mehr in den virtuellen Adressraum eines Prozesses passen. Dann hilft auch kein swappen mehr.
Wie /me schon schrieb ist swappen Aufgabe des Betriebssystems und das tut das auch. Zumindest kann ich das bei meinen Python-Programmen beobachten, wenn die Daten umfamgreich genug werden.
Ich vermute mal eher Deine Daten werden so gross, dass sie nicht mehr in den virtuellen Adressraum eines Prozesses passen. Dann hilft auch kein swappen mehr.
- noisefloor
- User
- Beiträge: 3856
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
die genau Beschreibung des Memory Errors findet man hier. ist wohl so wie BlackJack sagt - zu großes Ergebnis.
BTW: Wo von hängt es ab, wie viel RAM ein Python-Prozess bekommt? Gibt es ein hartes oberes Limit oder ist das nur vom OS und RAM abhängig?
Gruß, noisefloor
die genau Beschreibung des Memory Errors findet man hier. ist wohl so wie BlackJack sagt - zu großes Ergebnis.
BTW: Wo von hängt es ab, wie viel RAM ein Python-Prozess bekommt? Gibt es ein hartes oberes Limit oder ist das nur vom OS und RAM abhängig?
Gruß, noisefloor
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Es ist OS-abhängig.noisefloor hat geschrieben:BTW: Wo von hängt es ab, wie viel RAM ein Python-Prozess bekommt? Gibt es ein hartes oberes Limit oder ist das nur vom OS und RAM abhängig?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice