Python: sqlite3.Cursor.execute 是懒惰的吗?

2 投票
1 回答
650 浏览
提问于 2025-04-18 18:02

请问 sqlite3.Cursor.__iter__ 这个方法是懒加载的吗?也就是说,它是先把所有的行都计算出来,然后在遍历的时候再一个个给我,还是说只有在我真正遍历的时候才会计算这些行?我问这个是因为我在考虑是否要在我的SQL查询中加一个 LIMIT 限制。

1 个回答

2

SQLite的C语言接口是懒惰的,也就是说,sqlite3_step这个函数会在需要的时候才计算出下一行的结果。

至于Python的sqlite3模块,源代码显示,pysqlite_cursor_iternext这个函数会调用pysqlite_step一次。

撰写回答