MYSQL: Performance Tuning

Maurizio Giglio - Emmegi Arts - News web e DB

MySql Performance Tuning: il vostro DB non è mai stato così veloce

Avete problemi di performance con il vostro DB? Il vostro sito Drupal stenta a decollare? Il vostro Joomla tra un click e l'altro vi da il tempo di prendere un caffé. Bene seguita i consigli che ho trovato!

Setup di un MySQL 5.x con almeno 500MB di RAM:

max_connections = 150
max_user_connections = 150
key_buffer = 36M
myisam_sort_buffer_size = 64M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 3M
table_cache = 1024
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1800
connect_timeout = 10
max_allowed_packet = 1M
max_connect_errors = 1000
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M

 

Queste configurazioni vanno nel file my.cnf o nel file my.ini presente ad esempio in

C:\Program Files\MySQL\MySQL Server 5.1

Fate attenzione ai valori messi nei buffer per non saturare la memoria.

Io consiglio di riavviare il server, riavviare MySql e prendere nota della ram occupata.

Variare un parametro alla volta per verificare che a freddo la ram occupata non sia eccessiva.

 

TEST DI CARICO E PERFORMANCE

Volete fare dei test di carico del database? Volete sapere che performance avrete in ambito concorrente?

MySQL vi da di suo già gli strumenti ad hoc.

Eseguite da shell (nella cartella bin del database) il seguente comando:

 

mysqlslap --concurrency=50 --iterations=50 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --user=root --password=miapassword --host=hostdatabase

 

In questa maniera eseguirete 50 utenti che in parallelo eseguono 50 query. Alla fine avrete i tempi di esecuzione delle query.

 

RIFERIMENTI

- Ottima risorsa per il tuning del database MySql: MySQL Performance Tuning