Det är viktigt att snabba upp SQL-frågor för att säkerställa att dina webbplatser och applikationer fungerar snabbt och levererar en bra kundupplevelse. Här är några tips för att snabba upp databasfrågor och förbättra frågeprestanda.
Hur man snabbar upp SQL-frågor
Här är några viktiga sätt att förbättra SQL-frågans hastighet och prestanda.
1. Använd kolumnnamn istället för SELECT *
När du använder SELECT-satser använd endast de kolumner du behöver i ditt resultat, istället för att använda SELECT * från … Detta kommer att minska resultatstorleken avsevärt och påskynda din SQL-fråga.
Bonus Läs:Hur man ökar Max anslutningar i MySQL
2. Undvik kapslade frågor och vyer
När du kapslar en fråga/vy i en annan fråga/vy resulterar det i att många data returneras för varje enskild fråga och saktar ner din fråga avsevärt. Ibland kan databasservern till och med timeout och inte returnera något.
3. Använd IN-predikat när du frågar efter indexerade kolumner
När du frågar efter en indexerad kolumn, använd ett IN-listpredikat istället för att använda matematiska operatorer som "=" eller logiska operatorer som AND/OR. IN-predikatet kan påskynda dina SQL-frågor eftersom frågeoptimeraren sorterar IN-listan för att matcha sorteringssekvensen för INDEX, vilket leder till snabbare resultat.
Bonus Läs:Hur man lagrar UTF8-tecken i MySQL
4. Gör för-staging
Om du har frågor och procedurer som gör kopplingar till stora tabeller, är det lämpligt att skapa en separat tabell med resultatet. När du sammanfogar tabeller i förväg fungerar SQL-frågorna som använder deras resultat mycket snabbare.
5. Använd temptabeller
På samma sätt, om du sammanfogar en stor tabell med en liten, skapar du en tillfällig tabell som endast innehåller data som krävs för att ansluta till den mindre tabellen. Du kan göra detta genom att välja data från en stor tabell, överföra den till en tillfällig tabell och sammanfoga den lilla tabellen med den här tillfälliga tabellen.
Bonusläsning:PostgreSQL materialiserad vy
6. Använd CASE istället för UPDATE
UPDATE-satsen tar längre tid än CASE-satsen på grund av loggning. Å andra sidan avgör CASE-satsen vad som behöver uppdateras och gör dina SQL-frågor snabbare.
7. Undvik att använda GUID
Undvik att använda globalt unika identifierare eftersom de kan sakta ner dina frågor. Använd DATE eller IDENTITY istället.
Bonus Läs:Hur man ändrar databas till UTF8
8. Undvik att använda OR i JOINS
JOINS är tidskrävande eftersom din databas måste undersöka varje rad för en matchning. Om du också använder OR-villkor i en JOIN kommer din databas att ta dubbelt så lång tid att matcha poster. Som nämnts tidigare, använd IN-operatorn istället.
Förhoppningsvis kommer tipsen ovan att hjälpa dig att snabba upp SQL-frågor.