日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Django4.0教程:Django4.0 數(shù)據(jù)庫(kù)訪問(wèn)優(yōu)化-使用批量方法

使用批量方法來(lái)減少SQL語(yǔ)句

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),松陽(yáng)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:松陽(yáng)等地區(qū)。松陽(yáng)做網(wǎng)站價(jià)格咨詢:18980820575

批量創(chuàng)建

當(dāng)創(chuàng)建對(duì)象時(shí),盡可能使用 ?bulk_create()? 方法來(lái)減少 SQL 查詢數(shù)量。比如:

Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
])

要優(yōu)于:

Entry.objects.create(headline='This is a test')
Entry.objects.create(headline='This is only a test')

批量更新

當(dāng)更新對(duì)象時(shí),盡可能使用 ?bulk_update()? 方法來(lái)減少 SQL 查詢數(shù)。給定對(duì)象的列表或查詢集:

entries = Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
])

下面示例:

entries[0].headline = 'This is not a test'
entries[1].headline = 'This is no longer a test'
Entry.objects.bulk_update(entries, ['headline'])

要優(yōu)于:

entries[0].headline = 'This is not a test'
entries[0].save()
entries[1].headline = 'This is no longer a test'
entries[1].save()

批量插入

當(dāng)插入對(duì)象到 ?ManyToManyFields?時(shí),使用帶有多個(gè)對(duì)象的 ?add()? 來(lái)減少 SQL 查詢的數(shù)量。舉例:

my_band.members.add(me, my_friend)

要優(yōu)于:

my_band.members.add(me)
my_band.members.add(my_friend)

其中 ?Bands?和 ?Artists?有多對(duì)多關(guān)系。
當(dāng)不同的對(duì)象對(duì)插入到 ?ManyToManyField?或者自定義的 ?through?表被定義時(shí),可以使用 ?bulk_create()? 方法來(lái)減少 SQL 查詢的數(shù)量。比如:

PizzaToppingRelationship = Pizza.toppings.through
PizzaToppingRelationship.objects.bulk_create([
    PizzaToppingRelationship(pizza=my_pizza, topping=pepperoni),
    PizzaToppingRelationship(pizza=your_pizza, topping=pepperoni),
    PizzaToppingRelationship(pizza=your_pizza, topping=mushroom),
], ignore_conflicts=True)

要優(yōu)于:

my_pizza.toppings.add(pepperoni)
your_pizza.toppings.add(pepperoni, mushroom)

批量刪除

當(dāng)從 ?ManyToManyFields?刪除對(duì)象時(shí),可以使用帶有多個(gè)對(duì)象的 ?remove()? 來(lái)減少 SQL 查詢的數(shù)量。比如:

my_band.members.remove(me, my_friend)

要優(yōu)于:

my_band.members.remove(me)
my_band.members.remove(my_friend)

其中 ?Bands?和 ?Artists?有多對(duì)多關(guān)系。
當(dāng)從 ?ManyToManyFields?里刪除不同的對(duì)象對(duì)時(shí),可以在帶有多種 ?through?模型實(shí)例的 ?Q?表達(dá)式上使用 ?delete()? 來(lái)減少 SQL 查詢的數(shù)量。比如:

from django.db.models import Q
PizzaToppingRelationship = Pizza.toppings.through
PizzaToppingRelationship.objects.filter(
    Q(pizza=my_pizza, topping=pepperoni) |
    Q(pizza=your_pizza, topping=pepperoni) |
    Q(pizza=your_pizza, topping=mushroom)
).delete()

要優(yōu)于:

my_pizza.toppings.remove(pepperoni)
your_pizza.toppings.remove(pepperoni, mushroom)

網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)Django4.0教程:Django4.0 數(shù)據(jù)庫(kù)訪問(wèn)優(yōu)化-使用批量方法
分享網(wǎng)址:http://m.5511xx.com/article/djjhsie.html