Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Altri Linguaggi - [MySql]Problema lentezza di una query
Forum - Altri Linguaggi - [MySql]Problema lentezza di una query

Avatar
gabbiano32 (Normal User)
Newbie


Messaggi: 1
Iscritto: 05/10/2011

Segnala al moderatore
Postato alle 8:46
Mercoledì, 05/10/2011
Salve ragazzi vi scrivo percèe mi trovo davanti un bel problema, la query che vi scriverò sotto impiega troppo tempo per essere eseguita perchè all'interno del ciclo for la query va a scorrere l'intero db (circa 10 Mb di record) per ogni categoria, l'ottimizzazione che desidererei effettuare e far prendere solo un numero n di righe per categoria (come vedete c'è il limit ma con il limit tutto il db è scansionato non risolvendo il problema).... Grazie mille
Codice sorgente - presumibilmente VB.NET

  1. $query = " SELECT cont.* , #__categories.title as ctitle, u.name, u.username, CONCAT_WS(':', cont.id, cont.alias)  as slug "
  2.                         . " FROM (";
  3.                 for ($i = 0; $i < count($categories); $i++) {
  4.                     $query.= "( SELECT * FROM $tabella "
  5.                             . "WHERE catid = " . $categories[$i] . " AND publish_up > DATE_SUB( now( ) , INTERVAL $limite_orario HOUR ) AND publish_up < DATE_SUB( now( ) , INTERVAL 2 HOUR )"
  6.                             . " and (publish_down = " . $database->Quote($nullDate) . " OR publish_down >= " . $database->Quote($now) . ")"
  7.                             . "ORDER BY featured DESC , publish_up DESC "
  8.                             . "LIMIT $category_count ) ";
  9.                     if ($i < (count($categories) - 1))
  10.                         $query.= " union ";
  11.                 }
  12.                
  13.                 $query .=" ) as cont join #__categories on cont.catid = #__categories.id   "
  14.                         . " \n LEFT JOIN #__users AS u ON u.id = cont.created_by "
  15.                         . " where cont.state = 1 "
  16.                         . "\n AND #__categories.published = 1 "
  17.                         . " ORDER BY cont.featured DESC, cont.publish_up DESC ";


PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 10:39
Mercoledì, 05/10/2011
ho già visto molte cose che non vanno... ma senza l'obbiettivo della query non posso ottimizzarla.

mi servono 2 informazioni:

1) Schema del db
2) Frase obbiettivo della query (ad esempio: mi servono tutti i record che hanno tizio caio così, pippo pluto maggiore di gargamella e la marmotta che confezionava la cioccolata)


PM Quote