mysqldb извлекает весь результат запроса в один кусок всегда, даже если я просто делаю fetchone?
Так что если я сделаю
import MySQLdb
conn = MySQLdb.connect(...)
cur = conn.cursor()
cur.execute("SELECT * FROM HUGE_TABLE")
print "hello?"
print cur.fetchone()
Мне кажется, что MySQLdb получает всю огромную таблицу до того, как попадает в «печать». Ранее я предполагал, что в фоновом режиме выполняется своего рода «ленивое извлечение курсора / состояния», но для меня это не похоже. Это правильно? Если так, то это потому, что так должно быть или это связано с ограничением проводного протокола MySQL? Означает ли это, что Java / Hibernate ведут себя так же?
Я предполагаю, что мне нужно использовать предложения MySQL "limit 1" и родственников, если я хочу пройти через большую таблицу, не вытягивая все сразу? Или нет? Заранее спасибо.