SQLAlchemy中ResultProxy的正确使用
以上图片摘自《Essential SQLAlchemy 2nd Edition》,是在介绍ResultProxy在生产环境中使用时的注意点的,翻译如下:
- 如果查询仅返回单条记录,使用first方法获取,这比fetchone及scalar方法好,因为它对于后续阅读你的代码的人来说更加清晰;
- 对于查询返回多条记录的情况,使用ResultProxy的迭代循环版本(笔者注:即for in rp),这比fetchall和fetchone方法要好。因为它更节省内存,而且一般情况下我们也是每次仅处理一条记录;
- 避免使用fetchone方法,因为如果你不注意的话,它会让数据库连接一直连着;
- 尽量少的使用scalar方法,因为如果返回超过一条记录它就会报错,而这在测试中经常会被忽略。