Oppure

Loading
05/10/11 6:46
gabbiano32
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
$query = " SELECT cont.* , #__categories.title as ctitle, u.name, u.username, CONCAT_WS(':', cont.id, cont.alias)  as slug "
	                . " FROM (";
	        for ($i = 0; $i < count($categories); $i++) {
	            $query.= "( SELECT * FROM $tabella "
	                    . "WHERE catid = " . $categories[$i] . " AND publish_up > DATE_SUB( now( ) , INTERVAL $limite_orario HOUR ) AND publish_up < DATE_SUB( now( ) , INTERVAL 2 HOUR )"
	                    . " and (publish_down = " . $database->Quote($nullDate) . " OR publish_down >= " . $database->Quote($now) . ")"
	                    . "ORDER BY featured DESC , publish_up DESC "
	                    . "LIMIT $category_count ) ";
	            if ($i < (count($categories) - 1))
	                $query.= " union ";
	        }
	        
	        $query .=" ) as cont join #__categories on cont.catid = #__categories.id   "
	                . " \n LEFT JOIN #__users AS u ON u.id = cont.created_by "
	                . " where cont.state = 1 "
	                . "\n AND #__categories.published = 1 "
	                . " ORDER BY cont.featured DESC, cont.publish_up DESC ";
aaa
05/10/11 8:39
HeDo
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)

aaa