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" и родственников, если я хочу пройти через большую таблицу, не вытягивая все сразу? Или нет? Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос