Joomla.it Forum

Non solo Joomla... => Database => : gimsi 31 Jul 2008, 11:44:59

: Mysql lento
: gimsi 31 Jul 2008, 11:44:59
Ciao a tutti  :)

Da un pò di tempo, la mia installazione è molto lenta e mette in crisi il mysql che spesso occupa anche il 98% della CPU del server.

Ho notato abilitando il log_slow_queries e usando il mysqldumpslow che ho una query particolarmente lenta che è questa:

  SELECT m.*, sum(case when p.published=N then N else N end) as cnt
  FROM jos_menu AS m
  LEFT JOIN jos_menu AS p ON p.parent = m.id
  WHERE m.menutype='S' AND m.published='S' AND m.access <= 'S'
  GROUP BY m.id ORDER BY m.parent, m.ordering

Ho aggiunto alla tabella jos_menu (che ha 345 elementi) un indice con i campi menutype, published e access.
Il tempo di esecuzione medio è passato da 7 secondi a 2,5.
Il miglioramento c'è stato ma non è ancora un sito veloce e il mysql ha ancora dei picchi molto alti di utilizzo della CPU.
Cos'altro potrei fare?

Grazie
: Re: Mysql lento
: filpi5481 31 Jul 2008, 14:43:37
ciao.. benvenuto

prova ad ottimizzare il database.

ciao
: Re: Mysql lento
: gimsi 01 Aug 2008, 08:44:43
ho già provato con l'OPTIMIZE TABLE con phpMyAdmin, c'è un modo più adatto?
: Re: Mysql lento
: filpi5481 01 Aug 2008, 09:44:51
no.

probabilmente hai un sito web molto grosso che richiede molto database. Una soluzione potrebbe essere quella di eliminare un pò di cose che magari non servono.

quanto è grande tutto il db?
: Re: Mysql lento
: gimsi 01 Aug 2008, 10:28:43
il db ha una dimensione di 11 MB circa, le due tabelle che mi sembrano più onerose sono jos_content con quasi 3800 entries e jos_content_frontpage che ne ha quasi 1500.

Non so se può essere utile per capire il problema ma la tabella jos_session si "rompe" abbastanza spesso.

Intanto grazie per l'aiuto
: Re: Mysql lento
: filpi5481 01 Aug 2008, 11:21:27
il database non è molto grosso.

ti consiglio a questo punto di chiedere informazioni al tuo host, loro sapranno essere più precisi.

ciao
: Re: Mysql lento
: = odino = 01 Aug 2008, 12:19:55
provata a svuotare la cache del sito?
: Re: Mysql lento
: gimsi 01 Aug 2008, 14:14:33
non uso la cache del sito, ho dovuto disattivarla perché il menù compariva completamente in disordine. E' anche questo uno strano sintomo. Potrebbe essere perché il DB deriva da una migrazione da mambo? (però i problemi sono iniziati 8 mesi dopo)
: Re: Mysql lento
: filpi5481 01 Aug 2008, 16:08:12
no, escludo la migrazione
: Re: Mysql lento
: jqjo 05 Sep 2008, 13:30:00
scusami ma è la singola query ad impiegare 2,5 sec o è perchè viene lanciata più di una volta? ad ogni modo per curiosità che driver usi? mysql o mysqli? io ho notato che cè parecchia differenza tra i due
: Re: Mysql lento
: gimsi 05 Sep 2008, 14:22:37
Si, era la singola query ad impiegare 2,5 secondi.
Mi pare che il problema si sia risolto da quando ho aggiunto una serie di nuovi indici alla tabella jos_menu.

  KEY `componentid` (`componentid`,`menutype`,`published`,`access`),
  KEY `menutype` (`menutype`),
  KEY `menutype_2` (`menutype`,`published`,`access`),
  KEY `parent` (`parent`),
  KEY `ordering` (`ordering`),
  KEY `parent_2` (`parent`,`id`)

in particolare l'indice parent_2 con parent e id, mi pare che abbia sortito l'effetto maggiore (forse perché usato nella clausola di JOIN).

Grazie a tutti del prezioso supporto
: Re: Mysql lento
: filpi5481 05 Sep 2008, 19:27:39
ok perfetto

ciao
: Re: Mysql lento
: jqjo 08 Sep 2008, 13:28:24
attento aggiunger troppi indici ad una tabella non è una ocsa consigliabile in quanto aumenta il carico di lavoro necessario agli aggiornamenti della tabella stessa, prova a controllare i dati inseriti nelle tabelle inquestione