Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 11711|Svare: 0

[Kilde] MySQL-konfigurasjonsfilen my.cnf forklares i detalj

[Kopier lenke]
Publisert på 13.11.2017 11:55:59 | | |
Juster MySQL-kjøringsparametere, modifiser /etc/my.cnf-filen Juster MySQL-kjørende parametere slik at de trer i kraft etter omstart av MySQL, etter MySQL 4-versjonen kan noen interne variabler settes under MySQL-kjøring, men de vil være ugyldige når MySQL startes på nytt.
MySQLD-program - kataloger og filer
basedir = sti # Bruk den gitte mappen som rotkatalog (installasjonsmappe).
Datadir = sti # Les databasefilen fra en gitt katalog.
pid-file = filnavn # Spesifiser en fil for mysqld-programmet for å lagre prosess-ID-en (kun tilgjengelig for UNIX/Linux-systemer);

[mysqld]                        
socket = /tmp/mysql.sock # Spesifiserer en socket-fil for lokal kommunikasjon mellom MySQL-klientprogrammet og serveren (standard er /var/lib/mysql/mysql.sock-filen på Linux)
port=3306 # Spesifiserer porten som MsSQL lytter etter
key_buffer = 384M # key_buffer er størrelsen på bufferen som brukes for indeksering av blokker, noe som øker indeksen den håndterer bedre (for alle lesinger og multiskrivinger).
                               Indeksblokken buffres og deles av alle tråder, og størrelsen på key_buffer avhenger av størrelsen på minnet.
table_cache = 512 # Antall tabeller åpne for alle tråder. Å øke denne verdien øker antallet filbeskrivelser som kreves av mysqld. Det unngår overheaden ved hyppig åpning av datatabeller
sort_buffer_size = 2M # Alloker en buffer av den størrelsen for hver tråd som må sorteres. Å øke denne verdien akselererer ORDER BY eller GROUP BY-operasjoner.
                               Merk: Det allokerte minnet som tilsvarer denne parameteren er eksklusivt for hver tilkobling! Hvis det er 100 tilkoblinger, er den totale allokerte sorteringsbufferstørrelsen 100×6 = 600 MB
read_buffer_size = 2M # Størrelsen på bufferen som kan brukes til lesespørringsoperasjonen. Som med sort_buffer_size er det allokerte minnet som tilsvarer denne parameteren også eksklusivt for hver tilkobling.
query_cache_size = 32M # Angir størrelsen på MySQL-spørringsresultatbufferen
read_rnd_buffer_size = 8M # Endre parameteren som skal leses tilfeldig etter sortering med radpekeren.
myisam_sort_buffer_size =64M # Buffer kreves for å omorganisere MyISAM-tabeller når de endres
thread_concurrency = 8 # Maksimalt antall samtidige tråder settes som antall serverens logiske CPU-er ×2, og hvis CPU-en støtter H.T-hypertråding, × 2
thread_cache = 8 # #缓存可重用的线程数
skip-locking # unngår ekstern låsing av MySQL, reduserer sjansen for feil og øker stabiliteten.
[mysqldump]
max_allowed_packet =16M # Den maksimale mulige informasjonspakken som kan sendes mellom serveren og klienten

[myisamchk]
key_buffer = 256M
sort_buffer = 256M
read_buffer = 2M
write_buffer = 2M

Andre valgfrie parametere:
back_log = 384
    Spesifiserer antall mulige tilkoblinger for MySQL.
    Når MySQL-hovedtråden mottar et svært stort antall tilkoblingsforespørsler på svært kort tid, trer denne parameteren i kraft, og hovedtråden bruker kort tid på å sjekke tilkoblingen og starte en ny tråd.
    Verdien av back_log parameter angir hvor mange forespørsler som kan lagres i stakken i en kort periode før MySQL midlertidig slutter å svare på nye forespørsler.
    Hvis systemet har mange tilkoblinger på kort tid, er det nødvendig å øke verdien av denne parameteren, som spesifiserer størrelsen på lyttekøen for innkommende TCP/IP-tilkoblinger.
    Å prøve å sette en grense som back_log høyere enn operativsystemet ditt vil være ineffektivt. Standardverdien er 50. For Linux-systemer anbefales det å sette et heltall mindre enn 512.
max_connections = n
    Det maksimale antallet databasetilkoblinger som MySQL-serveren kan håndtere samtidig (standardinnstillingen er 100). Hvis grensen overskrides, vil feilen For mange tilkoblinger bli rapportert
key_buffer_size = n
    RMA-verdi for indeksblokker (standardinnstilling er 8M), og øker indeksen for bedre håndtering (for alle lesinger og multiskrivinger)
record_buffer:
    Hver tråd som utfører en sekvensiell skanning allokerer en buffer av denne størrelsen til hver tabell den skanner.
    Hvis du gjør mange sekvensielle skanninger, kan det være lurt å øke den verdien. Standardverdien er 131072 (128K)
wait_timeout:
    Antall sekunder serveren venter på handling på en tilkobling før den slås av.
interactive_timeout:
    Antall sekunder serveren venter på handling på en interaktiv tilkobling før den slås av.
    En interagerende kunde defineres som en kunde som bruker CLIENT_INTERACTIVE-alternativet for mysql_real_connect().
    Standardverdien er 28800, du kan endre den til 3600.
hopp-navn-resolve            
    Deaktiver MySQL fra DNS-oppløsning på eksterne tilkoblinger, og bruk av dette alternativet eliminerer tiden det tar for MySQL å løse DNS.
    Det bør imidlertid bemerkes at hvis dette alternativet er aktivert, må all ekstern vertstilkoblingsautorisasjon bruke IP-adressemetoden, ellers vil ikke MySQL kunne behandle tilkoblingsforespørselen normalt!
log-slow-queries = slow.log
    Ta opp trege spørringer og optimaliser dem én etter én
skip-innodb
skip-bdb
    Lukk uønskede tabelltyper og ikke legg til dette hvis du trenger det
         
         
# > VISER VARIABLER SOM '%query_cache%';
# > VISER STATUS SOM 'Qcache%';
Hvis Qcache_lowmem_prunes-verdien er veldig stor, indikerer det ofte at det er utilstrekkelig buffering;
Hvis verdien til Qcache_hits er veldig stor, indikerer det at spørringsbufferen brukes veldig ofte, og hvis verdien er liten men vil påvirke effektiviteten, kan du vurdere å ikke bruke spørringsbuffering.
Hvis Qcache_free_blocks-verdien er veldig stor, indikerer det at det er mye rusk i bufferen.


##########################################
###### max_allowed_packet      ######
##########################################
En kommunikasjonspakke er en enkelt SQL-setning sendt til MySQL-serveren eller en enkelt linje til klienten.
Den maksimale mulige pakken som kan sendes mellom MySQL 5.1-serveren og klienten er 1 GB.
Når en MySQL-klient eller mysqld-server mottar en pakke større enn max_allowed_packet byte, utstedes en feilmelding om at pakken er for stor, og forbindelsen lukkes. For noen klienter, hvis kommunikasjonspakken er for stor, kan du støte på feilen "Tap av tilkobling til MySQL-server" under forespørselen.
Både klient og server har sine egne max_allowed_packet variabler, så hvis du planlegger å håndtere store pakker, må du legge til den variabelen både på klienten og serveren.
Hvis du bruker et mysql-klientprogram, er max_allowed_packet variabel som standard 16 MB. For å sette en større verdi kan du starte MySQL på følgende måte:
MySQL> MySQL --max_allowed_packet=32M
Den setter størrelsen på informasjonspakken til 32 MB.
Standard max_allowed_packet verdien for serveren er 1 MB. Hvis serveren må behandle store spørringer, kan du øke denne verdien (for eksempel hvis du forbereder deg på å behandle store blob-kolonner). For eksempel, for å sette den til 16 MB, kan du starte serveren slik:
mysql> mysqld --max_allowed_packet=16M

Du kan også bruke options-filer for å sette max_allowed_packet. For å sette denne variabelen for serveren til 16 MB, legg til nedlink-innhold i options-filen:
[mysqld]
max_allowed_packet=16M
Det er trygt å øke verdien av denne variabelen fordi ekstra minne kun tildeles når det er nødvendig. For eksempel vil mysqld bare tildele mer minne hvis du sender en lang spørring eller mysqld må returnere store resultatlinjer. Den lille standardverdien til denne variabelen er et føre-var-tiltak for å fange feilpakker mellom klient og server og for å sikre at minneoverløp ikke skyldes utilsiktet bruk av store pakker.
Hvis du bruker store blob-verdier og ikke gir mysqld-tillatelse til å få tilgang til nok minne til å behandle spørringer, vil du også støte på rare problemer knyttet til store pakker. Hvis du mistenker dette, prøv å begynne å øke ulimit -d 256000 i skriptet mysqld_safe og starte mysqld på nytt.
##########################################
##### Hvordan åpne og lukke databasetabeller i MySQL #####
##########################################
table_cache, max_connections og max_tmp_tables påvirker det maksimale antallet filer serveren holder åpne. Hvis du øker en eller begge av disse verdiene, kan du støte på grensen som operativsystemet ditt setter på antall filbeskrivelser hver prosess åpner. Men du kan øke grensen på mange systemer. Be OS-dokumentasjonen din finne ut hvordan du gjør dette, siden metodene for å endre grensene varierer mye fra system til system.
table_cache relatert til max_connections. For eksempel, for 200 åpne joins, bør du ha en tabellbuffer på minst 200 * n, hvor n er det maksimale antallet tabeller i en join.
Cachen for åpne tabeller kan økes til maksimalt én table_cache (64 som standard; Dette kan gjøres med mysqlds -O table_cache=#选项来改变). En tabell lukkes aldri, bortsett fra når cachen er full og en annen tråd prøver å åpne en tabell, eller hvis du bruker mysqladmin refresh eller mysqladmin flush-tables.
Når tabellcachen er full, bruker serveren følgende prosedyre for å finne en cache-oppføring å bruke:
Tabeller som ikke er i bruk for øyeblikket, offentliggjøres, i rekkefølgen etter minst brukt (LRU).
Hvis cachen er full og det ikke finnes tabeller å frigjøre, men en ny tabell må åpnes, må cachen midlertidig forstørres.
Hvis cachen er i en midlertidig utvidet tilstand og en tabell endres fra aktiv til inaktiv, lukkes den og frigjøres fra cachen.
Åpne en tabell for hver samtidige tilgang. Dette betyr at hvis du har to tråder som får tilgang til samme tabell eller bruker tabellen to ganger i samme spørring (med AS), må tabellen åpnes to ganger. Den første åpningen av en tabell tar hensyn til 2 filbeskrivelser; Hver ekstra bruk av tabellen tar hensyn til kun én filbeskrivelse. For den første åpningen brukes en ekstra beskrivelse for å indeksere filen; Denne beskrivelsen deles mellom alle tråder




Foregående:Forstå /etc/init.d-katalogene og /etc/rc.local-skriptene på Linux-systemer
Neste:Hvordan bekrefte at MySQL-tjenesten er startet under Linux CentOS
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com