專案需求:瀏覽器中訪問django後端某一條url(如:127.0.0.1:8080/get_book/),實時朝資料庫中生成一千條資料並將生成的資料查詢出來,並展示到前端頁面
#for迴圈插入1000條資料
for i in range(1000):
models.book.objects.create(name='
第%s本書
'%i)
book_queryset = models.book.objects.all() #
將插入的資料再查詢出來
return render(request,'
get_book.html
',locals()) #
將查詢出來的資料傳遞給html頁面
urls.py
from django.conf.urls importmodels.pyurlviews
urlpatterns =[
url(r
'^get_book/
',views.get_book)
]
from django.db importmodels
class
get_book(models.model):
title = models.charfield(max_length=64)
"enget_book.html">
}
上述**書寫完畢後啟動django後端,瀏覽器訪問,會發現瀏覽器會有乙個明顯的卡頓等待時間,這是因為後端在不停的運算元據庫,耗時較長,大概需要等待一段時間之後才能正常看到剛剛插入的1000條資料,很明顯這樣運算元據庫的效率太低,那有沒有一種方式是專門用來批量運算元據庫的呢?答案是肯定的!
將views.py中原先的檢視函式稍作變化
def**修改完畢之後其他地方無需改動,重啟django專案瀏覽器重新訪問,你會立馬發現資料量增大十倍的情況下頁面出現的速度比上面還快。get_book(request):
l =for i in range(10000):
第%s本書
'%i))
models.book.objects.bulk_create(l)
#批量插入資料
return render(request,'
get_book.html
',locals())
bulk_create方法是django orm特地提供給我們的方便批量運算元據庫的方式,效率非常高!!!
批量插入資料
drop procedure if exists pre 如果存在先刪除 delimiter 以delimiter來標記用 表示儲存過程結束 create procedure pre 建立pre 儲存方法 begin declare i int default 12 declare n int de...
JDBC批量插入資料
一.直接上源 以匯入課表資料為例 批量插入新申請 匯入預設課表 throws sqlexception catch sqlexception e int number ps.executebatch 把剩餘的資料插入 conn.commit 手動提交事務 try catch sqlexception...
TVP批量插入資料
錶值引數具有更高的靈活性,在某些情況下,可比臨時表或其他傳遞引數列表的方法提供更好的效能。錶值引數具有以下優勢 1 首次從客戶端填充資料時,不獲取鎖。2 提供簡單的程式設計模型。3 允許在單個例程中包括複雜的業務邏輯。4 減少到伺服器的往返。5 可以具有不同基數的表結構。6 是強型別。7 使客戶端可...