Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

    [MySql] Curiosità ottimizzazione query

    Leggevo ieri in un sito (di cui purtroppo ora non trovo più l'indirizzo) che dovendo ad esempio recuperare tutti i record a partire da un determinato anno, la query seguente

    select * from tabella where data >= '2005-01-01'

    è preferibile a questa qui
    select * from tabella where year(data) >= 2005

    Vi risulta una cosa del genere? E se sì allora quale sarebbe l'utilità di funzioni come year() ?
    Grazie per l'attenzione.

  2. #2
    Sì, certo, e se il campo è datetime converrebbe metterci anche l'orario.
    Conviene perché riduci il numero di operazioni che il DBMS deve fare.

    Quelle funzioni servono comunque per formattare i dati. Se a te interessa visualizzare solo l'anno, che la trasformazione la faccia il DBMS o il PHP, sempre la devi fare, quindi a quel punto sono utili, ma per valutare una condizione in cui decidere che record prendere meno operazioni fai, meglio è.

    Chiaro che a seconda del tuo database puoi benissimo usare quella funzione e non notare alcuna differenza apprezzabile, sta a te valutare in base al tuo sistema.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Grazie skidx per la spiegazione.

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.