gpt4 book ai didi

python - SQLAlchemy 和 max_allowed_pa​​cket 问题

转载 作者:行者123 更新时间:2023-11-29 07:13:11 25 4
gpt4 key购买 nike

由于我的应用程序的性质,我需要支持将大量数据快速插入数据库。使用 executemany() 可以提高性能,但有一个警告。例如,MySQL 有一个名为 max_allowed_pa​​cket 的配置参数,如果我的插入查询的总大小超过它的值,MySQL 就会抛出一个错误。

问题 #1:有没有办法告诉 SQLAlchemy 将数据包拆分成几个较小的数据包?
问题 #2:如果其他 RDBS 也有类似的限制,我应该如何解决它们?



附言我之前发布过这个问题,但是当我错误地认为我可能根本不会遇到这个问题时删除了它。遗憾的是,情况并非如此。

最佳答案

我最近遇到了类似的问题并使用了 - 不是很优雅 - 解决方法:

  • 首先,我为 max_allow_packets 解析了 my.cnf 的值,如果找不到,则将最大值设置为默认值。
  • 所有数据项都存储在一个列表中。
  • 接下来,对于每个数据项,我计算大概的字节长度(对于字符串,它是字符串的字节长度,对于其他数据类型,我采用安全的最大字节数。)
  • 我将它们加起来,在我达到大约 2 次后提交。 max_allow_packets 的 75%(因为 SQL 查询也会占用空间,只是为了安全起见)。

这种方法不是很漂亮,但对我来说却完美无缺。

关于python - SQLAlchemy 和 max_allowed_pa​​cket 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com