Querying for allSpecies and homeworld executes 38 SQL queries
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Ambito
- backend-api-design, databases
Direzione di ricerca
Inizia con la query allSpecies e il trace SQL nell’issue, quindi esamina il resolver Graphene-Django e il percorso Django ORM che carica ogni homeworld. Confronta select_related() e prefetch_related() per questa relazione e usa la query segnalata come baseline; il lavoro è completato quando l’esempio riduce la richiesta a una o due query SQL.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
This query:
{
allSpecies {
edges {
node {
name
homeworld {
name
gravity
}
}
}
}
}
Executes 38 sql queries, looking something like this:
(0.001) SELECT COUNT(*) AS "__count" FROM "starwars_species"; args=()
(0.000) SELECT "starwars_species"."id", "starwars_species"."created",
"starwars_species"."edited", "starwars_species"."name",
"starwars_species"."classification", "starwars_species"."designation",
"starwars_species"."average_height", "starwars_species"."skin_colors",
"starwars_species"."hair_colors", "starwars_species"."eye_colors",
"starwars_species"."average_lifespan", "starwars_species"."homeworld_id",
"starwars_species"."language" FROM "starwars_species" LIMIT 37; args=()
(0.000) SELECT "starwars_planet"."id", "starwars_planet"."created",
"starwars_planet"."edited", "starwars_planet"."name",
"starwars_planet"."rotation_period", "starwars_planet"."orbital_period",
"starwars_planet"."diameter", "starwars_planet"."climate",
"starwars_planet"."gravity", "starwars_planet"."terrain",
"starwars_planet"."surface_water", "starwars_planet"."population" FROM
"starwars_planet" WHERE "starwars_planet"."id" = 9; args=(9,)
(0.000) SELECT "starwars_planet"."id", "starwars_planet"."created",
"starwars_planet"."edited", "starwars_planet"."name",
"starwars_planet"."rotation_period", "starwars_planet"."orbital_period",
"starwars_planet"."diameter", "starwars_planet"."climate",
"starwars_planet"."gravity", "starwars_planet"."terrain",
"starwars_planet"."surface_water", "starwars_planet"."population" FROM
"starwars_planet" WHERE "starwars_planet"."id" = 14; args=(14,)
... repeat another 36 times
Full list here: https://gist.github.com/simonw/762a98de85a2f113d1d7ec6026f73ee4
Is it possible to detect this case and then use select_related() or prefetch_related() here to join against the relevant table and get everything done in just one or two queries?
If so, an example showing how to do that would be a fantastic illustration of a slightly more complex use-case for graphene-django (I tried myself and couldn't figure out how to do it).
- Lingua principale
- Python
- Stelle
- 174
- Fork
- 33
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di graphql-python/swapi-graphene
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 35/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 25/100
graphql-python/swapi-graphene#14 · 1 commento ·
-
Support for Github GraphQL Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di graphql-python/swapi-graphene
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
anthropics/skills#1811 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
speaches-ai/speaches#678 ·
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
datalayer/mcp-compose#42 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
UKGovernmentBEIS/inspect_evals#2523 ·