Python: sqlite3.Cursor.execute 是懒惰的吗?
请问 sqlite3.Cursor.__iter__
这个方法是懒加载的吗?也就是说,它是先把所有的行都计算出来,然后在遍历的时候再一个个给我,还是说只有在我真正遍历的时候才会计算这些行?我问这个是因为我在考虑是否要在我的SQL查询中加一个 LIMIT
限制。
1 个回答
2
SQLite的C语言接口是懒惰的,也就是说,sqlite3_step这个函数会在需要的时候才计算出下一行的结果。
至于Python的sqlite3
模块,源代码显示,pysqlite_cursor_iternext
这个函数会调用pysqlite_step
一次。