Python + Sqlalchemy 对数据库的批量插入或更新(Upsert)

2022-11-06
阅读 3 分钟
11k
由于不同数据库对这种 upsert 的实现机制不同,Sqlalchemy 也就不再试图做一致性的封装了,而是提供了各自的方言 API,具体到 Mysql,就是给 insert statement ,增加了 on_duplicate_key_update 方法。
封面图

mysql 大数据表的分页性能优化

2022-10-30
阅读 1 分钟
1.6k
源表数据量相当大,有几千万行,显然不适合一次性取出(如果是一次性的脚本,在大内存的机器上也是可以考虑的,但定时任务每次启动都占用数十GB内存就太夸张了),需要分页查询。
封面图

flask-sqlalchemy中使用cursor游标

2022-05-23
阅读 2 分钟
4.4k
假设某数据表有1亿条记录,都需要导出,或者做业务数据处理,用OR Mapping一次性读入内存显然是不可能的,那么显然要分段处理。常见的分段方式,是通过offset+limit来指定返回的记录窗口(flask-sqlalchemy直接提供了paginate对象实现分页,应该是对offset+limit的封装)。这种方式很直观,但缺点也很明显:每一段的都重...
封面图

在Sqlalchemy的查询中新共享filter

2022-03-06
阅读 1 分钟
2k
使用Python做web开发,OR Mapping的部分,通常会用到Sqlalchemy,它是一个相对重量级的数据库封装层,提供了丰富的调用接口。
封面图