Back to top

Autore Topic: Mysql lento  (Letto 8007 volte)

Offline gimsi

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Mysql lento
« il: 31 Lug 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

Offline filpi5481

  • Global Moderator
  • Instancabile
  • *****
  • Post: 4106
  • Sesso: Maschio
  • NO MP TECNICI
    • Mostra profilo
Re: Mysql lento
« Risposta #1 il: 31 Lug 2008, 14:43:37 »
ciao.. benvenuto

prova ad ottimizzare il database.

ciao
Volete sapere tutto sul nuovo iPad di Apple? iPad Forum Italia
Global moderator Joomla.it

Offline gimsi

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Re: Mysql lento
« Risposta #2 il: 01 Ago 2008, 08:44:43 »
ho già provato con l'OPTIMIZE TABLE con phpMyAdmin, c'è un modo più adatto?

Offline filpi5481

  • Global Moderator
  • Instancabile
  • *****
  • Post: 4106
  • Sesso: Maschio
  • NO MP TECNICI
    • Mostra profilo
Re: Mysql lento
« Risposta #3 il: 01 Ago 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?
Volete sapere tutto sul nuovo iPad di Apple? iPad Forum Italia
Global moderator Joomla.it

Offline gimsi

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Re: Mysql lento
« Risposta #4 il: 01 Ago 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

Offline filpi5481

  • Global Moderator
  • Instancabile
  • *****
  • Post: 4106
  • Sesso: Maschio
  • NO MP TECNICI
    • Mostra profilo
Re: Mysql lento
« Risposta #5 il: 01 Ago 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
Volete sapere tutto sul nuovo iPad di Apple? iPad Forum Italia
Global moderator Joomla.it

Offline = odino =

  • Instancabile
  • ******
  • Post: 5696
  • Sesso: Maschio
  • "In realtà li trasforma in menomati" Danzel
    • Mostra profilo
Re: Mysql lento
« Risposta #6 il: 01 Ago 2008, 12:19:55 »
provata a svuotare la cache del sito?

Offline gimsi

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Re: Mysql lento
« Risposta #7 il: 01 Ago 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)

Offline filpi5481

  • Global Moderator
  • Instancabile
  • *****
  • Post: 4106
  • Sesso: Maschio
  • NO MP TECNICI
    • Mostra profilo
Re: Mysql lento
« Risposta #8 il: 01 Ago 2008, 16:08:12 »
no, escludo la migrazione
Volete sapere tutto sul nuovo iPad di Apple? iPad Forum Italia
Global moderator Joomla.it

Offline jqjo

  • Appassionato
  • ***
  • Post: 358
  • Sesso: Maschio
    • Mostra profilo
Re: Mysql lento
« Risposta #9 il: 05 Set 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
A computer is like an air conditioner, it stops working when you open Windows

KISS, Keep It Simple Stupid!

Offline gimsi

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Re: Mysql lento
« Risposta #10 il: 05 Set 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

Offline filpi5481

  • Global Moderator
  • Instancabile
  • *****
  • Post: 4106
  • Sesso: Maschio
  • NO MP TECNICI
    • Mostra profilo
Re: Mysql lento
« Risposta #11 il: 05 Set 2008, 19:27:39 »
ok perfetto

ciao
Volete sapere tutto sul nuovo iPad di Apple? iPad Forum Italia
Global moderator Joomla.it

Offline jqjo

  • Appassionato
  • ***
  • Post: 358
  • Sesso: Maschio
    • Mostra profilo
Re: Mysql lento
« Risposta #12 il: 08 Set 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
A computer is like an air conditioner, it stops working when you open Windows

KISS, Keep It Simple Stupid!

 



Web Design Bolzano Kreatif