Ich lasse bei einer Datenbankabfrage 500 Zeilen einlesen. Leider ist schon bei ca. 50-100 Zeilen der Arbeitsspeicher voll (SQL-Fehler).
Kann ich der Datenbank irgendwie mehr RAM zuweisen?
MySQL: RAM reicht nicht aus
- matze321
- Erledigt
-
-
Hi,
wie genau machst Du das? Über einen ssh Tunnel oder so?
Gibt ja verschiedene MöglichkeitenGrüsse, David
-
Sorry, einlesen ist vielleicht unglücklich ausgedrückt.
Besser ist: "Ein Select-Statement soll 500 Zeilen ausgeben" (eigentlich will ich die 500 Zeilen in einem PHP-Skript einlesen um eine Statistik zu erstellen).
Also ein Statement a la: Select * from <tabelle> limit 0,500 -
Konkret bekomme ich folgende Fehlermeldung:
Code
Alles anzeigen#3 - Error writing file '/tmp/MYQD3qDh' (Errcode: 28) für SELECT l.title AS title, l.value AS value, l.typ AS typ, l.xid AS xZid, l.lastchange AS lastchange, a.name AS name, a.xtype AS xtype FROM log l LEFT JOIN aktoren a ON a.xid = l.xid AND l.xtype = a.xtype ORDER BY lastchange DESC LIMIT 0 , 100
Wobei gerade ausprobiert: Jetzt kann ich mir nicht mal mehr 50 Werte ausgeben lassen
-
-
Nene, ich mach keinen SSH-Tunnel. Ich greife entweder direkt via PHP auf die Datenbank zu oder probiere es über´s phpMyAdmin aus.
Vielleicht noch ein kleiner Nachtrag:
Wenn ich das Skript aufrufe, dann seh ich in der Prozessliste den mysqld mit 32MB Speicherauslastung. -
Hi,
das hat nix mit dem RAM der QNAP zu tun, sondern mit der KOnfig der DB..
Schau mal ob Du die Datei : my.cnf (normal z.B. unter Linux im /etc/) findest.
Da sind auch Speichereinstellungen...
Nach einer Änderung musst Du natürlich die mysql neu starten..
Tomas
-
Liegt definitiv am RAM.
Ein Statement kann nur dann komplett ausgeführt werden, wenn genug "Space" da ist. /tmp ist ein tmpfs bei dem nur 32 MB zugewiesen sind und das "leider schnell volläuft".Schaue mal hier:
Zitat#3 - Error writing file '/tmp/MYQD3qDh' (Errcode: 28)
Die 32 MB, die von QNAP zugewiesen sind, sind einfach zu wenig. (In diesem Fall). Normalerweise ist das auch eine Menge holz, bei dem was da zurück kommt. Ich würde schon eher sagen, dass es mit einem Dump vergleichbar ist -> dann aber auch wieder ein kleiner^^.
Am besten erst mal nix an der mysql konfig machen.
So etwas wie max_allowed_packet ist wieder was anders. Das wäre z.B. der Buffer von einem Beispielsweise "sehr grossen Feld / einem Blob indem eine Binary gespeichert ist". / sowas kann man in der my.cnf einstellen.Also ruhig das oben was ich geschrieben hatte mal ausführen und testen
Wenn es funktioniert, dann kannst Du das ganze auch in die autorun.sh schreiben, so, dass es nach einem Neustart vom NAS wieder da wäre.Grüsse, David
-
-
-
Feedback: ohne die Erweiterung hat es nicht funktioniert.