Som alle andre databaser kan MySQL være kompliceret og kan stoppe med et øjebliks varsel med at sætte alle dine virksomheder og opgaver på spil. Almindelige fejl ligger dog til grund for de fleste problemer, der påvirker ydeevnen.
For at sikre, at din server fungerer effektivt og effektivt ved at levere stabil og ensartet ydeevne, skal du eliminere de fejl, der ofte forårsages af en eller anden subtilitet i arbejdsbyrden eller konfigurationsfælden.
Efterhånden som datamængden vokser, bliver den mere og mere kompleks. Derfor er det vigtigt at optimere databaserne godt for at levere en effektiv slutbrugeroplevelse. MySQL-indstilling af ydeevne er den ultimative løsning, da det vil hjælpe med at levere løsninger på disse databaseproblemer.
MySQL Performance Tuning
I denne artikel finder du nogle nyttige tips til, hvordan du bruger MySQL-indstilling af ydeevne. Dette vil hjælpe dig med at få den bedste ydeevne ud af din MySQL.
Trin 1:Brug ikke MySQL som en kø
Uden din erkendelse kan kø- og kølignende mønstre snige sig ind i din ansøgning. Et typisk eksempel er at markere e-mails som usendte, sende dem og derefter markere dem som sendt. dette er et almindeligt, men sjældent umærkeligt problem, som de fleste brugere har en tendens til at ignorere.
De forårsager to store præstationskompleksiteter:
- De serialiserer din arbejdsbyrde og forhindrer dermed opgaver i at blive udført parallelt. Derudover resulterer de ofte i en tabel, der indeholder arbejde i proces og historiske data fra job, der blev behandlet for lang tid siden. Dette sænker generelt behandlingshastigheden og -processen.
- Både tilføjer latency til applikationen og indlæser til MySQL.
Trin 2:Profilér din arbejdsbyrde
Profilering af din arbejdsbyrde er afgørende, da det hjælper dig med at forstå, hvordan din server fungerer, og den tid, den bruger på at behandle opgaver. Det bedste værktøj til at hjælpe dig med at gøre dette er MySQL Enterprise Monitors Query analyzer fra Percona-værktøjssættet.
Bemærk: Kun tilgængelig for Linux-brugere
Værktøjerne kan fange de forespørgsler, der udføres af serveren, og returnere en tabel med sorterede opgaver i formindskelse af rækkefølgen af responstid.
Profilering af din arbejdsbyrde afslører de dyreste forespørgsler til yderligere tuning. Tid er mest kritisk, fordi det, der er vigtigt, er, hvor hurtigt det fuldføres, når der udstedes en forespørgsel.
Profileringsværktøjerne grupperer også lignende forespørgsler, som giver dig mulighed for at se de langsomme forespørgsler og de hurtige, men udføres mange gange.
Trin 3:Forstå de fire grundlæggende ressourcer
CPU'en, hukommelsen, disken og netværket er de fire grundlæggende ressourcer, der er nødvendige for, at en database kan fungere. Derfor er det sandsynligt, at databasen yder dårligt, hvis nogen af disse ressourcer er overbelastede, svage eller uregelmæssige.
Du bør altid sikre dig, at alle de fire nævnte ressourcer er stærke og stabile, så MySQL kan fungere fejlfrit. Organisationer vælger normalt de servere med hurtige CPU'er og diske, der kan rumme flere hukommelsespladser.
Tilføjelse af hukommelse er en billig og nem måde at øge ydeevnen i størrelsesordener, især på diskbundne arbejdsbelastninger. Dette kan virke urimeligt, men mange diske bliver overudnyttet, da der ikke er nok hukommelse til at opbevare serverens arbejdsdatasæt.
Ved fejlfinding skal du kontrollere ydeevnen og udnyttelsen af alle fire ressourcer omhyggeligt for at hjælpe med at bestemme ydeevnestatistikken for de fire ressourcer. Det er vigtigt at overvåge deres ydeevne, da det hjælper brugeren med at vide, hvad der skal forbedres eller skal udskiftes. Du kan prøve denne metode, da det er en af de hurtigste metoder til at løse ydeevneproblemer i MYSQL.
Trin 4:Filtrer resultaterne efter den billigste først
En glimrende måde til optimering på er først at udføre det billige, upræcise arbejde, derefter det hårde, præcise arbejde på de mindre, hvilket resulterer i datasættet.
Eksempel:
Antag, at du leder efter noget inden for en given radius af et geografisk punkt. Det første værktøj i min programmørs værktøjskasse er Haversine {Great circle}-formlen til at beregne afstand langs overfladen af en kugle.
Problemet med teknikken er, at formlen kræver mange trigonometriske operationer, som er meget CPU-følsomme. Som et resultat har beregningerne en tendens til at køre langsomt og få maskinens CPU-udnyttelse til at stige i vejret.
Før du bruger formlen, skal du reducere dine poster til en lille delmængde af totalen og trimme det resulterende sæt til en præcis cirkel. Firkant, der indeholder cirklen, hvad enten det er præcist eller upræcist, er en nem måde at gøre dette på. Dette sikrer, at verden uden for pladsen aldrig bliver ramt af alle de dyre trigonometriske funktioner.
Trin 5:At kende og forstå de to skalerbarhedsdødsfælder.
Skalerbarhed er måske ikke så vag, som mange tror. I stedet er der præcise matematiske definitioner af skalerbarhed udtrykt som ligninger, der fremhæver, hvorfor systemer ikke skalerer så godt, som de burde.
Den universelle skalerbarhedslov er en definition, der er praktisk til at udtrykke og kvantificere systemernes skalerbarhedsegenskaber. Det forklarer skaleringsproblemer i form af serialisering og krydstale, som er de to grundlæggende omkostninger.
Parallelle processer, der skal stoppe for at noget serialiseret kan finde sted, er i sagens natur begrænset i deres skalerbarhed. Ydermere, hvis parallelle processer skal kommunikere med hinanden for at koordinere deres arbejde, begrænser de hinanden. Derfor foretrækkes det at undgå serialisering og krydstale for at gøre det muligt for din applikation at skalere hurtigt og effektivt.
Trin 6:Fokuser ikke for meget på konfigurationen
Folk bruger for meget tid på at tilpasse konfigurationer. Resultatet er normalt ikke en væsentlig forbedring og kan nogle gange være meget skadeligt. Standardindstillingerne, der leveres med MySQL, er one size fits no, og dårligt forældede, behøver du ikke konfigurere noget.
Så det er vigtigt at få det grundlæggende rigtigt og kun ændre indstillinger, hvis det er nødvendigt. I mange tilfælde anbefales serverjusteringsværktøjer ikke, fordi de kan vildlede brugere med modstridende oplysninger. Nogle har farlige, unøjagtige råd kodet ind i dem som cache-hitforhold og formler for hukommelsesforbrug.
Trin 7:Pas på sideinddelingsforespørgsler
Programmer, der paginerer, bringer normalt serveren i knæ. Optimeringer kan ofte findes i selve den anden brugergrænseflade. For eksempel, i stedet for at vise det nøjagtige antal sider i resultaterne og links, kan du kun vise et link til en side, der indeholder disse oplysninger. Således kan du forhindre folk i at overbelaste den originale side.
På forespørgselssiden kan du i stedet for at bruge offset med grænse vælge en række mere, og når du klikker på "næste side", kan du udpege den sidste række som udgangspunkt for det næste sæt resultater.
Trin 8:Gem statistikken ivrigt, advare modvilligt
Alarmering og overvågning er afgørende, men det, der sker med det typiske overvågningssystem, er, at det begynder at sende falske positiver. Systemadministratorer opsætter regler for e-mailfiltrering for at stoppe støjen, og snart bliver dit overvågningssystem ubrugeligt.
Det er vigtigt at fange og gemme alle de metrics, du overhovedet kan, fordi du vil blive glad for at have dem, når du prøver at finde ud af, hvad der er ændret i systemet. Når et mærkeligt problem dukker op, vil du også være i stand til at pege på en graf og nemt spore en ændring i serverens arbejdsbyrde.
Folk advarer normalt om ting som bufferhitforholdet eller antallet af midlertidige tabeller, der oprettes pr. sekund. Problemet er, at der ikke er nogen rimelig tærskel for et sådant forhold. Desuden er den passende tærskel forskellig mellem servere og fra tid til anden, efterhånden som dit arbejde ændrer sig.
Som et resultat, advare sparsomt og kun på forhold, der indikerer et konkret, handlingsværdigt problem. For eksempel kan et lavt bufferhitforhold ikke handles, og det indikerer heller ikke et reelt problem, men en server, der ikke reagerer på et forbindelsesforsøg, er et reelt problem, der skal løses.
Trin 9:Lær de tre regler for indeksering
Dette er det mest misforståede emne i databaser, fordi der er mange måder at lære om, hvordan indekser fungerer, og hvordan serveren bruger dem. Indekser, hvis de er korrekt designet, tjener tre vigtige formål i en databaseserver;
- I stedet for enkelte rækker lader indekser serveren finde grupper af tilstødende rækker. Mange mennesker tror, at formålet med indekser er at finde individuelle rækker, men at finde enkelte rækker fører til tilfældige diskoperationer, hvilket gør serveren meget langsom. At finde grupper af rækker er meget bedre og interessant end at finde rækker en ad gangen.
- Det lader også serveren undgå sortering ved at læse rækkerne i den ønskede rækkefølge. Aflæsning af rækker, i modsætning til sortering, er meget hurtigere og billigere.
- Indekser lader også serveren tilfredsstille hele forespørgsler fra indekset alene, hvilket undgår behovet for overhovedet at få adgang til tabletten. Dette er forskelligt kendt som covey index eller en indeks-forespørgsel.
Trin 10:Udnyt dine kollegers ekspertise
Vil du ikke gøre det alene? At pusle over problemer og gøre det, der virker logisk og fornuftigt for dig, virker måske det meste, men ikke hele tiden. Så opbyg i stedet et netværk af MySQL-relaterede ressourcer, der går ud over værktøjssæt og fejlfindingsvejledninger.
Folk er utroligt vidende og lurer på mailinglister, fora og så videre. Derudover giver konferencer, messer og lokale brugergruppearrangementer værdifulde muligheder for at få indsigt og opbygge relationer med jævnaldrende, der kan hjælpe dig.
For de få, der leder efter værktøjer til at supplere disse tips, kan du tjekke Percona Configuration Wizard til MySQL og MySQL Percona-overvågningsplugins.
Konfigurationsguiden kan hjælpe dig med at generere en basislinje. my.cnf-fil til en ny server, der er bedre end de eksempelfiler, der leveres med serveren.
Forespørgselsrådgiveren, der er bedre end de eksempelfiler, der leveres med serveren. Rådgiveren vil analysere din SQL for at hjælpe med at opdage potentielt destruktive mønstre såsom pagineringsforespørgsler (tip 7).
Percona overvågnings-plugins er sæt af overvågnings- og grafiske plugins, der hjælper dig med at gemme statistik ivrigt og advare modvilligt (trin nr. 8). Alle disse værktøjer er frit tilgængelige.
Fordele ved justering af ydeevne
Den primære fordel er, at det giver dig mulighed for at undgå overforsyning og reducere omkostninger ved at tilpasse dine tjenester i den rigtige størrelse. Det giver dig også indsigt i, om flytning af datalagring eller tilføjelse af serverkapacitet vil forbedre ydeevnen eller ej, og i givet fald hvor meget det vil være.
Når først en database er tunet korrekt, giver den gavnlige resultater med stor funktionalitet. Det sænker ikke kun uønsket opgavebelastning, men optimerer også MySQL-databasen for hurtigere datahentning.
Andre indstillinger kan gøre en forskel afhængigt af din arbejdsbyrde eller hardware. Målet er at give dig et par MySQL-ydeevnejusteringer for hurtigt at få en fornuftig MySQL-konfiguration uden at bruge for meget tid på at ændre ikke-grundlæggende indstillinger eller læse dokumentation for at forstå, hvilke indstillinger der betyder noget for dig.
Konklusion
Afslutningsvis tilbyder justering af ydeevne mange fordele, og det anbefales, når du arbejder med store datamængder for at forbedre effektiviteten af din server. Ved at følge tipsene i denne artikel vil du være i stand til komfortabelt at udføre MySQL-ydeevnejustering på din server og databaser.