CyberTek - the future at the present!
Google

Optimalisere MySQL

Skrevet av: admin (juni 19)

Ikke snakke nå om hvordan å lage tabeller optimalisert for å gi de beste resultatene. Jeg husker bare at det indekserte feltene betraktelig bedre kjøring. Vi vil snakke i stedet for noen små tiltak for å forbedre ytelsen at MySQL er vanligvis installeres i de fleste distroer uten mye tuning parametere. Info referere til Linux distroer, men kan enkelt tilpasses til andre OS.

Konfigurasjonsfilen er vanligvis finner i / etc / my.ini.

Eempio av my.ini:

[Mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variabel = nøkkel buffer = 64M
set-variabel = max_user_connections = 100
set-variabel = query_cache_size = 64M
# Default å bruke gamle passord format for kompatibilitet med MySQL 3.x
# Klienter (mysqlclient10 de som bruker kompatibilitet pakken).
old_passwords = 1

[Mysql.server]
user = mysql
basedir = / var / lib

[Mysqld_safe]
feile-log = / var / log / mysqld.log
PID-file = / var / løpe / mysqld / mysqld.pid

buffere: ved å øke bufferen for ett database vil få mye raskere. Deretter stiller bufferne basert på hvor mye minne som er tilgjengelig, tar hensyn til forbruk laget av operativsystemet og andre programmer og tjenester i bruk. Hvis du tildeler for mye minne men ikke tilgjengelig, kan du kjøre inn forverring totale ytelsen til systemet.

Wait_timeout: representerer tiden det tar før en tilkobling er stengt automatisk på grunn av inaktivitet Mysql. Lavere tall betyr bedre ytelse. I dette tilfellet må du også spille den type forbindelser og deres estimert levetid til det bedre kalibrere parameteren.

back_log: kontrollerer hvor mange samtidige tilkoblinger kan tåle MySQL mens du oppretter nye tråder. Jo lavere tall, jo større er hastigheten. Oppmerksomheten er ikke lett å redusere ytelsen ved å sette denne parameteren riktig, bruk den bare når absolutt nødvendig.

Max_user_connections: angir det maksimale antall samtidige tilkoblinger som kan være en bruker. Det er veldig nyttig i systemer hvor MySQL har tilgang til den samme serveren flere brukere samtidig.

Delayed_queue_size: antall rader lagt med INSERT FORSINKET. Mindre vil bli lagt til i radene, vil MySQL være raskere.

Sort_buffer_size: Angi bufferstørrelsen for gjennomføringen av ORDER BY klausulene og GROUP BY. For å gjøre den mest effektive spørringen burde setter denne parameteren til en høyere verdi enn 2M.

Table_cache: styrer antall åpne tabeller for alle emner, øker denne variabelen, bordene lastet samtidig og øke ytelsen til MySQL er mye raskere. Oppmerksomhet til denne parameteren, operativsystemer har en grense av pekere til filer kan åpnes samtidig hvis du overskrider denne grensen du kan pådra system anomali.

Thread_cache_size: Angir hvor mange tråder å holde i cachen. Denne funksjonen gjør bruken av trådene veldig fort.

Den SHOW STATUS kommandoen hjelper oss å overvåke i sanntid disse variablene som de fleste andre hjelpe oss å forstå er hva de viktigste forbedringer vi kan gjøre:

  • Handler_read_first: hvor mange ganger den første posten ble lest fra indeksen til en tabell. Hvis dette skjer ofte, betyr det at tabellen ikke var indeksert riktig.
  • Innodb_buffer_pool_wait_free: Antall ganger MySQL må vente til spyling av minne sider. Hvis returverdien er høy da buffer pool størrelsen ikke var riktig konfigurert for mengden av skriveoperasjoner gjennomgått av serveren.
  • Key_reads: Antall ganger i filsystemet for å få tilgang til MySQL database indekser. Dette senker hastigheten på spørringen kjøres, så hvis denne verdien er høy så det betyr at nøkkelen bufferen er for liten og bør økes.
  • Max_used_connections: angir det maksimale antallet tilkoblinger som MySQL måtte være åpne samtidig i løpet av de siste støvel. Den første representerer en ekte referanseportefølje (bidrar til å bestemme det maksimale antallet tilkoblinger til serveren kan støtte) og den andre er presentert som en praktisk trafikk analysator.
  • Open_tables: Angir gjeldende antall åpne tabeller. Denne verdien bør analyseres i kombinasjon med cache størrelsen på tabellen. Normalt størrelsen på table_cache må settes større enn denne variabelen. Hvis verdien av er mye lavere enn open_tables table_cache å unngå ytelsesproblemer, er derfor tilrådelig å også redusere cache størrelse. Dersom verdien av open_tables er svært høy og nær buffer størrelse bør da øke table_cache.
  • Select_full_join: Antallet full delta MySQL har utført for å møte klientforespørsler. En høy verdi indikerer at i stedet for å bruke indekser, har MySQL blitt tvunget til å utføre full delta. Dette antyder behovet for en sterk indeks av disse tabellene.
  • Slow_queries: Antall spørringer som tok lengre tid enn vanlig på å utføre. En høy verdi skal føre oss til å analysere langsom spørsmål Logg å identifisere hva det langsomme søk for å optimalisere.
  • Threads_connected: det totale antallet klienter som er koblet til serveren i et slikt øyeblikk.
  • Created_tmp_disk_tables: Antallet midlertidige tabeller som ble opprettet på disken i stedet for minnet. Gitt at tilgang tabeller på disk operasjonen er vanligvis tregere enn i minnet, innholdet i variabelen er omvendt proporsjonal med hastigheten som spørringer kjører CREATE midlertidig tabell.
  • Oppetid: Angir hvor mange sekunder vil aktivere tjenesten.
Publisert i: mysql , tips

Legg til en kommentar

Spam beskyttelse av WP Captcha-Free

Drevet av Cybertek - Fjernhjelp