Как массово вставить данные в MySQL с Python - PullRequest
0 голосов
/ 06 октября 2010

В настоящее время я использую Alchemy в качестве ORM, и я ищу способ ускорить операцию вставки, у меня есть пакет файлов XML для импорта

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

Я использую приведенный выше код для вставки моего paser данных из пакетного XML-файла в MySQL, это очень медленно Также я пытался

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

но, похоже, ничего не изменилось

1 Ответ

1 голос
/ 09 октября 2010

Вы можете обойти ORM для операции вставки и использовать вместо этого генератор выражений SQL .

Что-то вроде:

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

Это должно создать один операторчтобы сделать вставку.

Этот пример был взят из ниже той же страницы .

(мне было бы интересно узнать, какое ускорение вы получили от этого)

...