Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Ottimizzazione sito

  1. #1

    Ottimizzazione sito

    In realtà non so se questa discussione andava messa qui o nella sezione sql. Fatto sta che ho questo problema:

    ho fatto un sito di calcio e ho inserito le partite. C'è una classifica fatta a mo di tabella con nome squadra, giocate, vittorie, pareggi, sconfitte, vittorie casa, pareggi casa, sconfitte casa, vittorie fuori, pareggi fuori, sconfitte fuori, gol fatti, gol subiti, dr e punti.

    Ora, per calcolare le vittorie e le sconfitte io uso delle query piuttosto corpose. Perchè le ho pensate così:

    dammi tutte le partite nella quale questa squadra, in questo girone ha segnato + gol dell'avversario nella stessa partita (vittorie); nella quale ha segnato lo stesso numero di gol dell'avversario (pareggi) e meno gol dell'avversario (sconfitte). Prima ho calcolato quelle in casa, poi quelle in trasferta. Per le totali ho sommato le due variabili.

    Solo che ci mette molto a caricare la pagina:

    Pagina

    Questo è un girone di prova. Ci mette sui 10 - 20 secondi per caricarla. C'è un modo per ottimizzare le query? Un'idea ce l'avrei però verrebbe un po' scomodo... Ogni volta che faccio finire una partita, automaticamente il sistema assegna 3 1 o 0 punti alle squadre che hanno giocato. Magari posso incrementare anche vittorie o cose varie. Che consigliate?

  2. #2
    Probabilmente si puo' ottimizzare la query, ma senza vederla capirai che e' difficile.
    Comunque se il problema e' di query, perche' postare in PHP?

  3. #3
    Originariamente inviato da k.b
    Probabilmente si puo' ottimizzare la query, ma senza vederla capirai che e' difficile.
    Comunque se il problema e' di query, perche' postare in PHP?
    Perchè non so se è per la query o per i troppi dati. Comunque in realtà c'è una query per ogni statistica (query abbastanza lunghe in alcuni casi). Poi con php faccio: mysql_num_rows($query) e stampo il numero.

    Come si ottimizza una query? O che altra soluzione avresti?

  4. #4
    Nessuno sa come aiutarmi?

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    vediamo la query...

  6. #6
    Originariamente inviato da eiyen
    vediamo la query...
    In realtà ci sono più query e alla fine conto con mysql_num_rows il numero di righe della query. Ne posto una (la + corposa) oppure le posto tutte?

  7. #7
    Gia' il fatto che ci siano tante query non e' un buon segno. Conosci le JOIN?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    mmmh... se sono varie query allora probabilmente è un problema di cicli php (troppe iterazioni magari)... chiedo, cmq:

    - c'è una sola tabella di cui parliamo?
    - in ogni caso: dov'è il nome della squadra avversaria?

    In linea di massima secondo me sarebbe meglio una tabella SQUADRE (id, nome, ...) e una PARTITE (squadra_casa, squadra_ospite, gol_squadra_casa, gol_squadra_ospite, ...) e basta: tutto il resto si "calcola"

  9. #9
    Originariamente inviato da eiyen
    mmmh... se sono varie query allora probabilmente è un problema di cicli php (troppe iterazioni magari)... chiedo, cmq:

    - c'è una sola tabella di cui parliamo?
    - in ogni caso: dov'è il nome della squadra avversaria?

    In linea di massima secondo me sarebbe meglio una tabella SQUADRE (id, nome, ...) e una PARTITE (squadra_casa, squadra_ospite, gol_squadra_casa, gol_squadra_ospite, ...) e basta: tutto il resto si "calcola"
    Il database ha una tabella per le squadre, una per i giocatori, una per la partita, una per il campionato più varie tabelle per i vari eventi (era un progetto universitario che io ho specializzato in questo sito).
    Inoltre ogni partita ha la distinzione squadra casa e squadra fuori. Quindi io per calcolare le vittorie (che è la query più corposa) conto le partite del campionato in cui la squadra corrente ha segnato + gol della squadra avversaria.

    Posto la query completa?

  10. #10
    Originariamente inviato da k.b
    Gia' il fatto che ci siano tante query non e' un buon segno. Conosci le JOIN?
    Io faccio una query che conta il numero di partite giocate dalla squadra, una che conta le vittorie (casa e fuori quindi due query) una i pareggi una le sconfitte e una i gol. Poi calcolo con le variabili DR e punti.

    Ho provato a fare una query unica con i count ma ci mette anche di più. Se con il join ci impiega di meno non sarebbe male. Come dovrei usarlo in questo caso?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.