|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jun 2009
Città: Roma
Messaggi: 102
|
[MySql] Come ottimizzare queste query?
Ciao,
stò portando avanti il progettone per un esame e devo ottimizzare al massimo alcune query SQL...come già mi è stato spiegato ci pensa l'ottimizzatore di query di MySql ma non si sa bene per quale motivo la proff come requisito fondamentale del progetto vuole che gliele portiamo anche in forma ottimizata...mi sò impiccando un po' a tentare di ottimizzare alcune query...mi date qualche idea per favore? Le tabelle da usare e la relativa struttura sono le seguenti: Codice:
TABELLA COMMENTO:
mysql> describe COMMENTO;
+--------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------------+-------------+------+-----+---------+----------------+
| Id_Commento | int(11) | NO | PRI | NULL | auto_increment |
| Commentatore | varchar(20) | NO | MUL | NULL | |
| Oggetto_Commentato | int(11) | NO | MUL | NULL | |
| Data | datetime | NO | | NULL | |
| Titolo | varchar(30) | NO | | NULL | |
| Commento | text | NO | | NULL | |
+--------------------+-------------+------+-----+---------+----------------+
TABELLA INSERZIONE:
mysql> describe INSERZIONE;
+-----------------+-----------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-----------------------+------+-----+---------+----------------+
| Id_Oggetto | int(11) | NO | PRI | NULL | auto_increment |
| Titolo | varchar(60) | NO | MUL | NULL | |
| Descrizione | text | YES | | NULL | |
| Costo_Base | decimal(6,2) | YES | | NULL | |
| Compralo_Subito | decimal(6,2) | YES | | NULL | |
| Scadenza | datetime | YES | | NULL | |
| Stato_Oggetto | enum('nuovo','usato') | YES | | NULL | |
| Id_Venditore | varchar(20) | NO | | NULL | |
| Id_Categoria | varchar(30) | NO | | NULL | |
+-----------------+-----------------------+------+-----+---------+----------------+
9 rows in set (0.00 sec)
Codice:
1) Visualizzare i commenti ricevuti da un certo oggetto ordinandoli in ordine ascendente rispetto al campo Commentatore*/ SELECT COMB.Oggetto_Commentato,INSERZIONE.Titolo, COMB.Titolo,COMB.Commentatore, INSERZIONE.Scadenza FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato AND COMA.Id_Commento = COMB.Id_Commento ORDER BY INSERZIONE.Id_Oggetto DESC LIMIT 5;SELECT COMMENTO.Commentatore, COMMENTO.Titolo, COMMENTO.Commento FROM COMMENTO WHERE Oggetto_Commentato = 9 ORDER BY COMMENTO.Commentatore asc; Codice:
2) Visualizza i 5 ultimi oggetti inseriti nelle inserzioni che sono stati commentati e le relative informazioni dei
commenti */
SELECT COMB.Oggetto_Commentato,INSERZIONE.Titolo, COMB.Titolo,COMB.Commentatore, INSERZIONE.Scadenza
FROM INSERZIONE, COMMENTO AS COMA, COMMENTO AS COMB
WHERE INSERZIONE.ID_Oggetto = COMA.Oggetto_Commentato
AND COMA.Id_Commento = COMB.Id_Commento
ORDER BY INSERZIONE.Id_Oggetto DESC
LIMIT 5;
Per favore è importante...devo trovare il modo di ottimizzarle qualche altra query (oltre a quelle che ho già sistemato) altrimenti non posso consegnare il progetto. Grazie mille Andrea |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Jun 2009
Città: Roma
Messaggi: 102
|
up
Per favore è importante... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:10.



















