EN - FR - DE - ES - IT - PT -

LexiconDream

❓ Fråga

En begäran om specifika data från en databas.

Fråga

En fråga begär specifika data från en databas. I SQL använder en fråga SELECT för att ange kolumner, FROM för att ange tabeller och WHERE för att filtrera rader. JOIN kombinerar tabeller. GROUP BY aggregerar. ORDER BY sorterar. Databasen analyserar frågan, planerar en exekveringsstrategi och returnerar resultaten. Samma fråga kan ställas på många sätt, och vissa sätt är mycket snabbare än andra.

Frågeprestanda beror på flera faktorer. Index snabbar upp sökningar på filtrerade kolumner. Frågeplaneraren väljer mellan olika exekveringsstrategier baserat på statistik om data. Föråldrad statistik leder till dåliga planer. Att skriva en fråga som använder index effektivt är en färdighet. En funktion som tillämpas på en indexerad kolumn i en WHERE-sats förhindrar att indexet används. En fråga som väljer alla kolumner när endast ett fåtal behövs slösar bort bandbredd och minne. En delfråga som körs en gång per rad är långsam. Samma logik som en koppling är snabb. Frågeoptimering är delvis konst, delvis vetenskap. Databasen tillhandahåller verktyg: EXPLAIN-planer, frågeprofilerare och prestandaräknare. Att läsa dessa verktyg kräver övning. En fråga som körs på millisekunder på en liten datamängd kan ta minuter på en stor. Skillnaden är ofta planen, inte hårdvaran.

Frågekomponenter

En fråga är en fråga. Databasen besvarar den. Svarets kvalitet beror på hur frågan ställs.

Comments

No comments yet. Be the first to share a thought.

Leave a comment