MySQLdb批量插入数据

鲲鹏Web数据抓取 - 专业Web数据采集服务提供者

测试了一下MySQLdb的executemany()方法,速度是惊人的:10分钟内插入了将近100万的数据。赶快来做个标记!

测试环境:Amazon RDS(Amazon Relational Database Service),数据表中原本有1900万条数据,测试完毕后,数据条数如下:

而之前我用execute()逐条插入同样多的数据竟然花了一个多周!!!

executemany()的用法如下:

view plaincopy to clipboardprint?
  1. cursor.executemany(
  2. """INSERTINTObreakfast(name,spam,eggs,sausage,price)
  3. VALUES(%s,%s,%s,%s,%s)""",
  4. [
  5. ("SpamandSausageLover'sPlate",5,1,8,7.95),
  6. ("NotSoMuchSpamPlate",3,2,0,3.95),
  7. ("Don'tWanyANYSPAM!Plate",0,4,3,5.95)
  8. ])
cursor.executemany(
"""INSERT INTO breakfast (name, spam, eggs, sausage, price)
VALUES (%s, %s, %s, %s, %s)""",
[
("Spam and Sausage Lover's Plate", 5, 1, 8, 7.95 ),
("Not So Much Spam Plate", 3, 2, 0, 3.95 ),
("Don't Wany ANY SPAM! Plate", 0, 4, 3, 5.95 )
] )

http://mysql-python.sourceforge.net/MySQLdb.html

1.2.3版的MySQL-python存在bug,"values"要小写才有效,详情见下面内容:

http://stackoverflow.com/questions/3945642/why-is-executemany-slow-in-python-mysqldb

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。