Come aumentare l'utilizzo della memory in MySQL Server per migliorare la velocità?

Ho un server Windows 2008 con 8 GB di RAM in esecuzione IIS7 e MySQL. Ho monitorato l'utilizzo di memory, CPU e disco sul server e ho scoperto che MySQL utilizza solo 250 MB di RAM, mantenendo i dischi molto occupati, anche se ho un sacco di RAM gratuito.

In SQL Server posso facilmente impostare la quantità di memory che voglio utilizzare, cerco la stessa impostazione in MySQL.

Come posso configurare MySQL per utilizzare più memory e ridurre l'utilizzo di cpu e disco?

2 Solutions collect form web for “Come aumentare l'utilizzo della memory in MySQL Server per migliorare la velocità?”

table_cache è la direttiva di configuration più utile da modificare. Ogni volta che MySQL accede a una tabella, carica la tabella nella cache. Se hai un elevato numero di tabelle, è più veloce che tu sia memorizzato nella cache.

Date un'occhiata alle variables del server eseguendo:

 show status; 

e cercare la variabile open_tables . Se questo è uguale al valore di table_cache e opened_tables continua a salire, è necessario aumentare il valore table_cache nel file di configuration. Troverai un equilibrio sperimentando queste variables durante i periodi di punta. Si desidera configurarlo in modo che nei momentjs di punta, ci sono una quantità ridotta di opened_tables anche dopo che il server è stato per lungo tempo.

key_buffer_size è anche una buona variabile da sperimentare. Questa variabile influenza la dimensione del buffer di indice e rendendo questa variabile più grande aumenta la velocità di gestione dell'indice di MySQL. È ansible esaminare le variables con le show variables; dello show variables; command di nuovo e confrontare i key_read_requests a key_reads . Idealmente, si desidera che il rapporto tra queste due variables sia il più basso ansible e si può fare aumentando la dimensione del key_buffer_size . Se imposta questa variabile più alta, avrai less scrittura e lettura direttamente da e verso il disco, che è stata la tua principale preoccupazione.

È necessario modificare i valori nel file my.cnf e riavviare MySQL, anche se è ansible modificare molti di essi anche mentre MySQL è in esecuzione ('SET GLOBAL VARIABLE = value ').

Probabilmente vuoi guardare l'aumento di key_buffer_size , sort_buffer , read_buffer e table_cache per i primi e probabilmente innodb_buffer_pool_size , se hai delle tabelle di InnoDB. Alcuni di questi valori possono aumentare molto (anche due ordini di grandezza) in particolare a causa dell'hardware. I valori predefiniti di MySQL sono estremamente conservatori e sembrano essere rivolti a desktop comuni comuni di circa dieci anni fa. Oh, e essere avvisato che la versione a 32 bit avrà problemi a utilizzare più di 2 GB di RAM.

Guarda nel manuale di MySQL per ulteriori informazioni e orientamenti.

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.