Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di ominox
    Registrato dal
    Dec 2001
    Messaggi
    218

    [MYSQL] Ottimizzare tempo di esecuzione query

    Salve,

    Faccio un esempio banale per farvi capire di cosa sto parlando...

    partendo dal presupposto che ho bisogno di ottimizare al massimo il tempo di esecuzione delle query sul db mysql vi presento due scenari possibili.
    Avrei bisogno di sapere quale secondo voi è più idoneo ad ottenere migliori perfomance nel tempo di esecuzione delle query (ipotizzando che nel db ci siano migliaia e migliaia di record)



    ho una tabella news ed una tabella video con i video(n) allegati ad ogni news.



    Prima possibilità
    Tabella "news"
    -id
    -titolo


    tabella "video"
    -id
    -idnews
    -nomevideo

    Codice PHP:
    join tra tabella news e tabella video 
    c'è uno spreco di risorse nell'eseguire la join su tutte le news, ipotizzando che ad esempio solo il 20% di news abbia dei video allegati?


    Secondapossibilità

    Tabella "news"
    -id
    -titolo
    -presenzavideo

    tabella "video"
    -id
    -idnews
    -nomevideo


    Codice PHP:
    seleziono tutte le news 
    se news
    .presenzavideo=1 allora 
    seleziono i video della news 
    Ha senso aggiungere il campo "presenzavideo" nella tabella news così da andarmi a richiamare i video allegati alla news con una ulteriore query evitando di fare il join tra le due tabelle?

    ripeto che ovviamente queste considerazioni sarebbero da applicare ad un ipotetico database con un numero elevatissimo di record.

    grazie


    Ciao

  2. #2
    IMHO se crei gli indici correttamente, ci penserà MySQL ad ottenere il massimo dell'efficienza dal join.

    Al massimo, crea la query ed esegui un EXPLAIN.

    Inoltre, visto che parli di "un ipotetico database con un numero elevatissimo di record", molto probabilmente ti conviene iniziare subito a pensare ad un sistema di caching.

  3. #3
    Utente di HTML.it L'avatar di ominox
    Registrato dal
    Dec 2001
    Messaggi
    218
    grazie per l'aiuto,

    potresti indicarmi in breve in cosa consiste il sistema di caching o segnalarmi qualche link?

    grazie

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.