2016-07-27 2 views
-1

Zum Beispiel kann die Abfrage:mysql-Client lief Speicher aus, weil SELECT-Abfrage gibt immer wieder die gleichen Zeilen

SELECT COUNT(*) FROM my_table 

gibt 231.146 als die Anzahl der Zeilen in der Tabelle und die Abfrage:

SELECT * FROM my_table r WHERE r.column1=0 AND r.column2=0 LIMIT 250000 

gibt 250.000 Zeilen zurück. Dies tritt nur für bestimmte Werte von Spalte1 und Spalte2 auf, und es scheint, dass sich drei Zeilen für immer wiederholen.

Edit: Egal was ich LIMIT in der zweiten Abfrage gesetzt hatte, würde es am Ende versuchen, so viele Zeilen zurückzugeben, wenn die Abfrage durch LIMIT unbegrenzt wäre, würde es am Ende genug Zeilen zurückgeben, um nicht genügend Arbeitsspeicher zu haben.

+0

müssen Sie wirklich 250k Zeilen gleichzeitig auswählen? Ich bezweifle es. Auch wenn Sie Ihr Schema und den Inhalt der DB nicht kennen, ist es schwer zu sagen, was Sie falsch machen. –

+0

Die erste Abfrage gibt genau eine Zeile zurück. –

+0

Er hat 2 Abfragen in Frage –

Antwort

-1

Eine einfache mysqlcheck Reparatur funktionierte nicht, aber läuft diese am Ende der Tabelle zu reparieren:

REPAIR TABLE my_table EXTENDED;

Verwandte Themen