所以,如果我这样做
import MySQLdb
conn = MySQLdb.connect(...)
cur = conn.cursor()
cur.execute("SELECT * FROM HUGE_TABLE")
print "hello?"
print cur.fetchone()
Run Code Online (Sandbox Code Playgroud)
在我看来,MySQLdb在进入"打印"之前获取了整个巨大的表.我之前认为它在后台做了某种"光标/状态"的懒惰检索,但它看起来不像我.这是正确的吗?如果是这样,因为它必须是这样的,还是由于MySQL线协议的限制?这是否意味着java/hibernate的行为方式相同?
我想我需要使用"限制1"MySQL条款和亲戚,如果我想要通过一个大表而不是一次性拉入整个事物?或没有?提前致谢.
这在我使用过的所有其他语言中都是正确的。fetchone 仅检索结果集的第一行,在本例中是整个数据库。它更像是一种方便的方法,如果您知道只有一个结果或者您只关心第一个结果,那么它的设计会更容易使用。
| 归档时间: |
|
| 查看次数: |
1294 次 |
| 最近记录: |