由于我的应用程序的性质,我需要支持将大量数据快速插入到数据库中。使用executemany()可以提高性能,但有一点需要注意。例如,MySQL有一个名为max_allowed_packet的配置参数,如果我的插入查询的总大小超过其值,MySQL就会抛出错误。
问题#1 :有没有办法告诉SQLAlchemy将数据包分成几个较小的数据包?
问题#2 :如果其他RDBS有类似的限制,我该如何解决它们呢?
P.S。我之前发布过这个问题,但是当我错误地认为我可能不会遇到这个问题时就删除了它。可悲的是,事实并非如此。
答案 0 :(得分:2)
我最近遇到了类似的问题并使用了 - 不是很优雅 - 解决方法:
max_allow_packets
的值,如果找不到,则将最大值设置为默认值。max_allow_packets
(因为SQL查询也会占用空间,只是为了安全起见。)这种方法并不是很漂亮,但它对我来说完美无瑕。