XMl 有 5000 条“产品”记录,MySQL 中的表有 6000 条“产品”记录,并非所有 xml 记录在数据库中都有对应的记录。我想更快地将数据从 xml 放入 mysql。怎么做?现在完成运行所需的时间是 11 秒。
db = MySQLdb.connect(host="",
user="",
passwd="",
db="")
cur = db.cursor()
DOMTree = minidom.parse(file.xml)
cNodes = DOMTree.childNodes
for i in cNodes[0].getElementsByTagName("product"):
y = i.getElementsByTagName("code")[0].childNodes[0].toxml()
z = i.getElementsByTagName("available")[0].childNodes[0].toxml()
cur.execute("UPDATE product SET stock=%s WHERE ean=%s", (z, y))
db.commit()
最佳答案
Executemany是你的 friend ,你可以收集所有数据并立即推送它们,而不是在for循环中重复执行命令。
data = [
('A', 'blabla'),
('B', 'test1'),
('C', 'test2'),
]
stmt = "UPDATE product SET stock=%s WHERE ean=%s"
cur.executemany(stmt, data)
更多信息请点击这里: http://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlcursor-executemany.html
关于python - 如何通过XML数据更快的更新MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29884700/