2010-10-06 55 views
0

我目前使用炼金术作为一个ORM,我寻找一种方式,以加快我的插入操作,我的XML文件包导入如何批量插入数据到MySQL与Python

for name in names: 
    p=Product() 
    p.name="xxx" 
    session.commit() 

我用上面的代码中插入批次的XML文件我的数据PASER到MySQL,这是非常缓慢的 还我试图

for name in names: 
    p=Product() 
    p.name="xxx" 
session.commit() 

但似乎没有任何改变

+0

@mizboy你需要提供更多信息。没有足够的信息来建议速度优化。提供当前的查询等 – 2010-10-06 16:28:19

回答

1

你可以绕过ORM的插入操作并使用SQL Expression generator代替。

喜欢的东西:

conn.execute(Product.insert(), [dict(name=name) for name in names]) 

这应该创建一个单独的语句来完成你的插入。

该示例取自lower down the same page

(我很想知道你从中得到了什么加速)

+0

最后我用mysqlimport cmd工具代替,它非常快,但应该建立一个csv文件 – mlzboy 2010-10-11 15:05:21