Привет, ребята, в настоящее время я пытаюсь перенести текущий db в другой, и к этому процессу, к сожалению, относится python. Я смог сделать это однопоточным, но невероятно медленно потребовалось несколько часов, чтобы закончить 1M-данные. Есть ли аналогичный метод в python, например, Java-исполнитель и фьючерсы?Многопоточный Python для DB Insert
отмечают, что user_list является кусок 1000/1M
for data in user_list:
q = """ insert into users(id,name,address,password)
Values({id},{name},{address},{password})
""".format(id=data['id'],name=data['name'],address=data['address'],password=data['password'])
db.command(q)
Я думаю, что это было бы гораздо быстрее, если я бегу к примеру 8 параллельных потоков вставляя 8 в то время вместо одной нити делает единственную вставку
Какая вы используете DB? Это может быть быстрее, но для каждого потока вам потребуется отдельное соединение db. Сначала я увижу, поддерживает ли ваша БД «объемные вставки» или «пакетные вставки» - обычно это намного быстрее, чем вставка одной строки за раз. – ErikR
А, так что я не могу использовать 1 соединение для одновременного ввода n? Я импортирую sql в orientdb на данный момент. @ErikR – kenlz
Нет - вам потребуется одно соединение на поток. Также см. Мой ответ. – ErikR