If you have to insert very large amount of data why are you trying to insert all of them in one single insert
? (This will unecessary put load on your memory in making this large insert
string and also while executing it. Also this isn't a very good solution if your data to be inserted is very very large.)
Why don't you put one row per insert
command in the db and put all the rows using a for...loop
and commit all the changes in the end?
con = mysqldb.connect(
host="localhost",
user="user",
passwd="**",
db="db name"
)
cur = con.cursor()
for data in your_data_list:
cur.execute("data you want to insert: %s" %data)
con.commit()
con.close()
(Believe me, this is really fast but if you are getting slower results then it means your autocommit
must be True
. Set it to False
as msw
says.)