Django Academy · Oppitunti

select_related ForeignKey-kentille

Liitä liittyvät rivit JOIN-operaatiolla yhdessä kyselyssä

Oppitunti 2/413 vaihetta

select_related ForeignKey-kentille on ilmainen Django Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Django Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Django Academy-kurssilla on yhteensä 4 oppituntia.

Tutustu select_related-toimintoon

select_related käskee Djangoa hakemaan liittyvät rivit etukäteen samalla kyselyllä, jolloin silmukat eivät enää aiheuta ylimääräisiä yhteyksiä. ⚡

Se käyttää JOIN-operaatiota

Konepellin alla se lisää SQL-kyselyyn JOIN-operaation ja hakee pääolion sekä siihen liittyvän rivin tehokkaasti samalla yhteydellä.

Peruskutsu

Välitä liittyvän kentän nimi querysetin select_related-kutsulle, niin liitos tehdään automaattisesti datan lataamisen yhteydessä.

books = Book.objects.select_related('author')

101 kyselystä yhteen

Nyt näiden kirjojen läpikäyminen ja jokaisen kirjailijan lukeminen suorittaa yhden kyselyn 101 kyselyn sijaan. Koodi pysyy samana, mutta hyöty on valtava.

for book in books:
    print(book.author.name)

Milloin se sopii

Käytä sitä ForeignKey- ja OneToOne-kenttien kanssa, joissa kukin olio viittaa täsmälleen yhteen liittyvään riviin, jonka liitos voi hakea.

Ei useille riveille

Se ei toimi many-to-many-suhteissa eikä käänteisissä one-to-many-linkeissä, koska liitos ei pysty yhdistämään useita rivejä siististi yhdeksi kokonaisuudeksi.

Seuraa ketjua

Voit ylittää useita yhteyksiä kaksoisalaviivoilla ja yhdistää useamman vierasavaimen samaan kyselyyn.

Book.objects.select_related('author__publisher')

Useita kerralla

Välitä useita kenttien nimiä hakeaksesi useita suhteita yhdessä, kaikki samaan optimoituun kyselyyn yhdistettyinä.

Order.objects.select_related('customer', 'product')

Se on myös laiska

Kysely odottaa edelleen, kunnes todella käytät dataa, joten suodattimien ja order_by-kutsun ketjuttaminen ennen sitä säilyy kevyenä ja joustavana.

Huomioi leveyden kasvu

Liitokset lisäävät sarakkeita, joten älä valitse liikaa dataa. Hae vain ne suhteet, joita todella luet, jotta rivit pysyvät kevyinä.

Hyödyllinen toimintamalli

Huomaatko vierasavaimen käytön silmukassa? Ota ensin käyttöön select_related. Siitä tulee nopeasti automaattinen toimintatapa. 🎯

Pikatarkistus

Valitse tälle suhteelle oikea työkalu.

Kertaus

select_related yhdistää ForeignKey- ja OneToOne-datan yhteen kyselyyn ja poistaa N+1-ongelman yksittäisiin riveihin johtavissa suhteissa. Ketjuta yhteyksiä kaksoisalaviivoilla. ✅

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”select_related ForeignKey-kentille” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Django Academy-oppimispolun 3 oppituntia, myös oppitunnin “select_related ForeignKey-kentille”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Django Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”select_related ForeignKey-kentille”?

Liitä liittyvät rivit JOIN-operaatiolla yhdessä kyselyssä Harjoittelet Django Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Django Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Django Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”select_related ForeignKey-kentille”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Django Academy-oppitunnilla?

Kyllä. Jokainen Django Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. N+1-ongelman tunnistaminen
  2. select_related ForeignKey-kentille
  3. prefetch_related M2M-relaatioille
  4. Profilointi Debug Toolbarilla
← Takaisin: Django Academy