Effektiv SQL-syntax

Använd JOIN (i FROM -satsen) när du ska inkludera en tabell i en fråga i stället för en underfråga i WHERE -satsen. Detta fungerar även om du bara behöver data i en tabell för filtrering, inte för resultatet.

Att koppla flera tabeller i FROM -satsen fungerar bättre än att använda en underfråga i en WHERE -sats.

Undvik SQL-satser som inte kan dra nytta av index. Sådana satser inkluderar de som använder sammanställningsfunktioner i en underfråga, en UNION -sats i en underfråga och en ORDER BY -sats med en UNION -sats.

Ett index kan avsevärt öka bearbetningshastigheten för en SELECT -fråga. En del SQL-syntax hindrar dock databasen från att använda index och tvingar den att använda verkliga data för söknings- och sorteringsåtgärder.

Undvik att använda operatören LIKE , speciellt med ett inledande jokertecken, t.ex. LIKE('%XXXX%') .

Eftersom LIKE -åtgärden har stöd för sökningar med jokertecken tar det längre tid än exakta jämförelser. Om du inleder söksträngen med jokertecken kan databasen inte använda index alls vid sökningen. I stället måste databasen söka igenom den fullständiga texten på varje rad i tabellen.

Undvik att använda operatören IN . Om de möjliga värdena är kända på förhand, kan IN -åtgärden skrivas med AND eller OR för snabbare körning.

Den andra av följande två satser verkställs snabbare. Den är snabbare eftersom den använder enkla likhetsuttryck i kombination med OR i stället för IN() - eller NOT IN() -satser:

-- Slower 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary IN (2000, 2500) 
     
-- Faster 
SELECT lastName, firstName, salary 
FROM main.employees 
WHERE salary = 2000 
    OR salary = 2500
Överväg alternativa former av en SQL-sats för att förbättra prestandan.

Så som visades i de föregående exemplen kan databasprestandan påverkas av hur en SQL-sats är skriven. Det finns ofta flera olika sätt att skriva en SELECT -sats för att hämta en viss resultatmängd. I vissa fall körs en metod avsevärt snabbare än en annan. I tillägg till de föregående förslagen kan du lära dig mer om olika SQL-satser och deras prestanda via särskilda resurser om SQL-språket.