How to bulk insert data to mysql with python
Question: Currently i'm using Alchemy as a ORM, and I look for a way to speed up my
insert operation, I have bundle of XML files to import

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

i use above code to insert my data paser from batch xml file to mysql,it's
very slow also i tried to

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

but it seems didn't change anything


Answer: You could bypass the ORM for the insertion operation and use the [SQL
Expression
generator](http://www.sqlalchemy.org/docs/core/tutorial.html?highlight=insert#insert-
expressions) instead.

Something like:

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

That should create a single statement to do your inserting.

That example was taken from [lower down the same
page](http://www.sqlalchemy.org/docs/core/tutorial.html?highlight=insert#executing-
multiple-statements).

(I'd be interested to know what speedup you got from that)

