Я работаю над устаревшим кодом django, в котором используются необработанные запросы.
Здесь выполняется итерация каждой строки из фрейма данных, и insert
оператор создается для каждой строки и фиксируется.
В дополнение к данным из фрейма данных мне также нужно добавить другие дополнительные данные для вставки, поэтому я не могу напрямую использовать некоторые .to_sql
методы и должен их повторять.
from django.db import connections
# Insert DataFrame recrds one by one.
with connections['frontend'].cursor() as cursor:
ad_blog = 'STATIC_BLOG_TEXT'
ad_by = 'STATIC_BLOG_INTEGER'
for i,row in data.iterrows():
sql = "INSERT INTO book_details (`df_name`, `df_title`, `ad_blog`, `ad_by`) VALUES ('" + row[0] + "', '" + row[1] + "', '" + ad_blog + "', '" + ad_by + "' )"
cursor.execute(sql)
connection.commit()
Поскольку набор данных сейчас вырос в почти миллион строк, это может замедлить выполнение задачи.
Как создать массовую вставку? Есть ли какая-нибудь опция multi=True
, которая упрощает массовую вставку?