Ikke tid til at snakke om, hvordan du opretter tabeller optimeret til at give bedre resultater. Jeg husker kun, at de områder indekseret forbedre meget gennemførelsestid. Tal i stedet for nogle små trick for at gøre det mere performant at MySQL er normalt installeret på de fleste distribution uden alt for mange parametre for tuning. Oplysningsvinduet henvise en Linux-distribution, men kan nemt tilpasses andre OS.
Opsætningsfilen findes normalt i / etc / my.ini.
Eempio af my.ini:
[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = key_buffer = 64M
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64M
# Standard for at bruge gamle password format for kompatibilitet med mysql 3.x
# Kunder (dem, der bruger den mysqlclient10 kompatibilitet pakke).
old_passwords = 1
[mysql.server]
user = mysql
basedir = / var / lib
[mysqld_safe]
fejle-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid
buffere: stoedpudeoploesning enhver incremeto får en database meget hurtigere. Derefter indstille buffere baseret på mængden af tilgængelig hukommelse, der tager hensyn til forbruget af operativsystemet og andre applikationer og tjenester i brug. Hvis du tildele for meget hukommelse, mens der ikke har en bestemmelse kan løbe ind i den generelle ydeevne af systemet.
Wait_timeout: repræsenterer den tid, der går, før den lukkes automatisk at oprette forbindelse til MySQL på grund af inaktivitet. Lavere antal er bedre ydeevne. I dette tilfælde skal du også spille den slags forbindelser og deres påståede tid til at kalibrere den bedste parameter.
back_log: Kontrol hvor mange samtidige forbindelser kan opretholde mens Mysql skaber ny tråd. Jo lavere tal, jo højere hastighed. Pas på, det er nemt at ikke forringe ydeevnen ved at indstille denne parameter korrekt, så brug det kun hvor det er absolut nødvendigt.
Max_user_connections: Indstiller det maksimale antal tilslutninger tilladt for en bruger. Det er meget nyttigt i systemer, hvor det samme MySQL server har adgang til flere brugere samtidigt.
Delayed_queue_size: antallet af rækker langs med INSERT forsinket. Vil være mindre lighed, jo hurtigere Mysql.
Sort_buffer_size: fastsætter størrelsen af den buffer er afsat til gennemførelse af klausuler ORDER BY, og grupperes efter. At gøre søgninger mere effektive det indstille denne parameter til en værdi større end 2M.
Table_cache: kontrol af antallet af åbne tabeller for alle tråde, øge denne variabel vil øge tabeller indlæses samtidigt og udførelsen af Mysql vil være meget hurtigere. Opmærksom på dette parameter, de operativsystemer har en grænse på henvisninger til filer åbnes på én gang, hvis du overskrider denne grænse, du måtte pådrage sig i fejl i systemet.
Thread_cache_size: Indstiller antal tråde at holde i cachen. Denne funktion gør brug af tråde meget hurtigt.
Vis status-kommando hjælper os overvåge i realtid disse variabler, som mere end andre til at hjælpe os med at forstå, hvad der er de mest betydelige forbedringer, vi kan gøre:
- Handler_read_first: Angiver, hvor mange gange den første record blev læst fra en tabel. Hvis dette sker ofte, betyder det, at tabellen ikke var indekseret korrekt.
- Innodb_buffer_pool_wait_free: angiver det antal gange, MySQL er nødt til at vente til skylning af sider i hukommelsen. Hvis den returnerede værdi er høj derefter buffer pool størrelse ikke er blevet konfigureret korrekt for størrelsen af skrive operationer undergået af serveren.
- Key_reads: angiver det antal gange, MySQL adgang til filsystemet til database indekser. Dette lægger en dæmper på hastigheden i fuldbyrdelsesstaten forespørgslen, så hvis denne værdi er høj, så det betyder, at nøglen buffer er for lille og bør øges.
- Max_used_connections: Angiver det maksimale antal forbindelser, der MySQL havde til at åbne i løbet af de sidste boot. På den ene side dette udgør en egentlig benchmark (det hjælper med til at beslutte det maksimale antal tilslutninger, at serveren kan støtte) og den anden er præsenteret som en bekvem trafik analysatoren.
- Open_tables: Angiver det aktuelle antal borde åbne. Denne værdi bør analyseres i kombination med cachestørrelse af bordet. Normalt størrelse table_cache bør fastsættes højere for denne variabel. Hvis værdien af open_tables er meget lavere end table_cache at undgå resultater problemer, er det derfor også reducere størrelsen på cachen. Hvis værdien af open_tables er meget høj, og nærmer sig størrelsen på cachen, så rejser det table_cache.
- Select_full_join: Antallet af fuld slutte MySQL har udført for at opfylde de krav, som kunder. En høj værdi angiver, at i stedet for at bruge indekser, MySQL har været tvunget til at udføre fuld tiltræde. Dette tyder på behovet for en stærk indeks af disse tabeller.
- Slow_queries: angiver antallet af forespørgsler, der tog længere tid end normalt at gøre. En høj værdi bør få os til at analysere Slow Query Log at identificere, hvad der er den langsomme query at optimere.
- Threads_connected: Angiver det samlede antal klienter, der er sluttet til serveren i sådan et øjeblik.
- Created_tmp_disk_tables: angiver antallet af midlertidige tabeller, som blev oprettet på disken i stedet for hukommelse. I betragtning af at få adgang til de tabeller på en disk er normalt langsommere end hukommelse, indholdet af variablen er omvendt proportional med den hastighed, hvormed forespørgsler kører kommandoen oprette midlertidig TABELPOSITION.
- Uptime: Viser hvor mange sekunder er på tjenesten.



































