0
由于我的应用程序的性质,我需要支持将大量数据快速插入数据库。使用executemany()会提高性能,但有一点需要注意。例如,MySQL有一个名为max_allowed_packet的配置参数,如果我的插入查询的总大小超过了它的值,MySQL将引发错误。SQLAlchemy和max_allowed_packet问题
问题#1:有没有办法告诉SQLAlchemy将数据包拆分成几个较小的数据包?
问题#2:如果其他RDBS有类似的约束,我该如何解决它们呢?
P.S.我早些时候发布了这个问题,但是当我错误地认为我可能不会遇到这个问题时将其删除。可悲的是,事实并非如此。
听起来不错,虽然有两个细微差别。首先,max_allowed_packet值可能是由DBA发布的命令设置的,而不是配置文件中的,所以我认为我宁愿做一个“select @@ max_allowed_packet”来代替。其次,你知道像Postgres或Oracle这样的其他数据库是否需要类似的解决方法? – dpq 2010-07-26 11:22:34
你说得对,''select''语句是正确的做法。和Postgres或Oracle一样,我对这些数据库没有任何经验,但是一个快速的谷歌搜索产生了http://www.mail-archive.com/[email protected]/msg71116.html,所以我假设至少Postgres没有这个限制,但我可能是错的。 – PhilS 2010-07-26 14:52:11