mysqldb zieht immer das ganze Abfrageergebnis in einen Block, auch wenn ich nur einen Fetchone mache?

Also, wenn ich es tue

 import MySQLdb
 conn = MySQLdb.connect(...)
 cur = conn.cursor()
 cur.execute("SELECT * FROM HUGE_TABLE")
 print "hello?"
 print cur.fetchone() 

Es sieht für mich so aus, als würde MySQLdb die gesamte riesige Tabelle abrufen, bevor es zum "Drucken" kommt. Ich habe vorher angenommen, dass es eine Art "Cursor / Status" -Retrieval im Hintergrund gab, aber für mich sieht es nicht so aus. Ist das richtig? Wenn ja, liegt es daran, dass dies so sein muss, oder liegt dies an einer Einschränkung des MySQL-Wire-Protokolls? Bedeutet das, dass sich Java / Ruhezustand genauso verhalten?

Ich schätze, ich muss die "Limit 1" MySQL-Klauseln und -Verwandte verwenden, wenn ich durch einen großen Tisch gehen möchte, ohne das Ganze auf einmal einzuziehen. Oder Nein? Danke im Voraus.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage