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