SQL är mycket enkelt att använda och användarvänligt eftersom kommandona har en enkel syntax. Men sedan är SQL-kommandots effektivitet föremål för olika databasfunktioner, specifikt när det gäller deras individuella beräkningstid. Språkets effektivitet innebär inte heller att det skulle vara lättare att optimera språket också. Varje databas kräver unika sätt att trimmas, enligt dess individuella behov.
Det är därför som det är tillrådligt att använda den bästa SQL-databasen, lika mycket som att känna till olika sätt att optimera eller öka databasen, för att säkerställa den bästa prestandan ur den. Omfattningen av optimeringen av SQL-databasen för utvecklare som t.ex. seniora Java j2ee-utvecklare skiljer sig från arbetet för en databasadministratör (DBA) i vissa avseenden och är likadana i andra avseenden. I stora företag måste utvecklare och databearbetare ofta arbeta tillsammans, och det har visat sig att det oftast uppstår en konflikt mellan de två grupperna. Det finns olika sätt att trimma SQL-databaser.
- NEXT GENERATION DEVOPS: VÄRDESTREAMFÖRVALTNING
- HUR DU VÄXER DITT SERVERLESS TEAM
- MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
- Riktig indexering
- SEE MORE: Toppdatabaser 2017: Trender för SQL, NoSQL, Big Data, Fast Data
- Hämta endast relevanta data
- Göra sig av med korrelerade underfrågor
- SEE MORE: Team MySQL mot Team PostgreSQL: Dessa företag satsar på dem
- Användning eller undvikande av tillfälliga tabeller beroende på krav
- Undervik kodningsslingor
- Exekveringsplaner
NEXT GENERATION DEVOPS: VÄRDESTREAMFÖRVALTNING
Helen Beal (DevOps Institute.)
HUR DU VÄXER DITT SERVERLESS TEAM
Sheen Brisals (LEGO Group)
MLOPS: CONTINUOUS DELIVERY OF MACHINE LEARNING SYSTEMS
Hauke Brammer (finpair GmbH)
Riktig indexering
Index är i princip en datastruktur som bidrar till att påskynda datahämtningsprocessen överlag. Unikt index är en typ av indexering som skapar separata datakolumner utan att överlappa varandra. Korrekt indexering säkerställer snabbare åtkomst till databasen. Överdriven indexering eller ingen indexering alls är båda fel. Utan någon indexering alls kommer bearbetningen att bli mycket långsam, medan indexering av allt kommer att göra insättnings- och uppdateringsutlösarna ineffektiva.
SEE MORE: Toppdatabaser 2017: Trender för SQL, NoSQL, Big Data, Fast Data
Hämta endast relevanta data
Specificering av de data man behöver möjliggör precision vid hämtning. Att använda kommandona *
och LIMIT
i stället för SELECT *
vid behov är ett utmärkt sätt att trimma databasen, samtidigt som man undviker att hämta hela datamängden när användaren bara vill ha en viss del av den. Naturligtvis kommer det inte att vara nödvändigt när mängden data totalt sett är mindre. Men när man får tillgång till data från en stor källa kan man spara mycket viktig tid genom att specificera de delar som behövs.
Kommandot *
används för att specificera data från kolumner, och kommandot LIMIT
används när användaren kräver data från ett visst antal rader bland mängden. Att välja sparsamt är inte direkt en nödvändig regel. Det hjälper dock till att undvika systemfel i framtiden. Dessutom minskar begränsning och specificering av data det ytterligare behovet av optimering av databasen i hög grad.
Göra sig av med korrelerade underfrågor
En korrelerad underfråga är i princip beroende av den överordnade eller yttre frågan. Denna typ av sökning görs rad för rad. Det innebär att den minskar processens totala hastighet. Problemet ligger vanligtvis i kommandot WHERE
från den yttre frågan, vilket innebär att underfrågan körs för varje rad som returneras av den överordnade frågan, vilket gör hela processen långsammare och minskar databasens effektivitet. Ett bättre sätt att trimma databasen i det här fallet är att använda kommandot INNER JOIN
i stället för den korrelerade underfrågan. Men i vissa fall är det viktigt att använda correlated sub-query.
SEE MORE: Team MySQL mot Team PostgreSQL: Dessa företag satsar på dem
Användning eller undvikande av tillfälliga tabeller beroende på krav
Om någon kod kan skrivas väl på ett enkelt sätt finns det absolut inget behov av att göra den komplex med tillfälliga tabeller. Om en uppgift har en specifik procedur som ska upprättas och som kräver flera förfrågningar, rekommenderas naturligtvis användning av tillfälliga tabeller i sådana fall. Temporära tabeller alterneras ofta med underfrågor, men man måste tänka på den specifika effektivitet som var och en av dessa skulle ge i separata fall.
Undervik kodningsslingor
Undervikande av kodningsslingor är mycket viktigt för att undvika att hela sekvensen blir långsammare. Detta kan uppnås genom att använda de unika kommandona UPDATE
eller INSERT
med enskilda rader och genom att se till att kommandot WHERE
inte uppdaterar de lagrade uppgifterna om det hittar en matchande befintlig uppgift.
Exekveringsplaner
Det verktyg för exekveringsplaner som skapas av optimeraren spelar en viktig roll vid inställningen av SQL-databaser. De hjälper också till att skapa korrekta index. Även om dess huvudfunktion är att grafiskt visa de olika metoderna för att hämta data. Detta hjälper i sin tur till att skapa de index som behövs och att göra de andra nödvändiga stegen för att optimera databasen.
Självklart finns det massor av andra sätt som man kan trimma sin SQL-databas på det mest effektiva sättet. Det finns också en stor chans att de steg som nämns ovan, kanske inte är rätt val för alla databaser. Varje databas kommer att kräva optimeringstekniker som är unikt specifika för dess behov.