[英]Django storing a lot of data in table
現在,我使用此代碼將數據保存到數據庫中-
for i in range(len(companies)):
for j in range(len(final_prices)):
linechartdata = LineChartData()
linechartdata.foundation = company //this refers to a foreign-key of a different model
linechartdata.date = finald[j]
linechartdata.price = finalp[j]
linechartdata.save()
現在len(companies)
可以在[3-50]之間變化, len(final_prices)
可以在[5000-10000]之間變化。 我知道將其存儲在數據庫中的方法效率很低,並且花費大量時間。 我應該怎么做才能使其有效並減少時間?
如果確實需要將它們存儲在數據庫中,則可以檢查bulk_create 。 從文件:
此方法以一種有效的方式(通常只有1個查詢,無論有多少個對象)將提供的對象列表插入數據庫:
雖然,我從來沒有親自使用過這么多對象,但是文檔說它可以。 這可以使您的代碼在命中數據庫和使用多個save()
方面更加高效。
基本上嘗試; 創建對象列表(不保存),然后使用bulk_create
。 像這樣:
arr = []
for i in range(len(companies)):
for j in range(len(final_prices)):
arr.append(
LineChartData(
foundation = company,
date = finald[j],
price = finalp[j]
)
)
LineChartData.objects.bulk_create(arr)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.