Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php] Curiosità: secondo voi, conviene fare in sql count(*) oppure contare in php?

    Salve,
    una curiosità:
    secondo voi, conviene fare
    Codice PHP:
        $ris mysql_query("SELECT COUNT(*) as C FROM ... ...");
        
    $r mysql_fetch_array($ris);
        
    $nrecord $r[C];        
        
    mysql_free_result($ris); 
    ossia contare in Sql, tirare fuori l'array (di una riga) in php e recuperare il numero di righe, oppure
    Codice PHP:
            $countrows mysql_query("SELECT ... ...");
            
    $num_rows_check mysql_num_rows ($countrows); 
    fare una query selezionando magari solo l'Id e contare dopo in php?
    わさび

  2. #2

    Re: [php] Curiosità: secondo voi, conviene fare in sql count(*) oppure contare in php?

    [supersaibal]Originariamente inviato da Trinità76
    Salve,
    una curiosità:
    [/supersaibal]
    La prima.

    Oltretutto non e' manco una query seria ... cioe' non deve contare, il numero delle righe e' scritto nell'indice. Ritorna sempre una stringa, anche se le righe fossero zero.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: Re: [php] Curiosità: secondo voi, conviene fare in sql count(*) oppure contare in

    [supersaibal]Originariamente inviato da piero.mac
    La prima.

    Oltretutto non e' manco una query seria ... cioe' non deve contare, il numero delle righe e' scritto nell'indice. Ritorna sempre una stringa, anche se le righe fossero zero.

    [/supersaibal]
    ehm, scusa la niubbagine =_='
    come la scriveresti allora per trovare l'indice?
    P.s. nella query SELECT COUNT(*) as C FROM ... ...
    ho omesso quello che c'era nei puntini...
    ...ma c'è uno o più where, ovviamente.
    Conto tutto, escludendo ad esempio solo chi ha il flag cancellato=1
    わさび

  4. #4
    Se c'e' e fai count(*) non scorre nemmeno le tuple. Se invece metti un where qualcosa... isola le tuple che rispondono alla condizione e ti dice quante sono. Lo sa mysql come ottimizzare la query se oppure non puo' utilizzare l'indice. Se vuoi sapere le risorse impegnate fai un EXPLAIN seguito dalla query. Anche da phpmyadmin..


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5

    Re: Re: Re: [php] Curiosità: secondo voi, conviene fare in sql count(*) oppure contar

    [supersaibal]Originariamente inviato da Trinità76
    ehm, scusa la niubbagine =_='

    come la scriveresti allora per trovare l'indice?
    P.s. nella query SELECT COUNT(*) as C FROM ... ...
    ho omesso quello che c'era nei puntini...
    ...ma c'è uno o più where, ovviamente.
    Conto tutto, escludendo ad esempio solo chi ha il flag cancellato=1 [/supersaibal]
    se fai ricerche basandoti su quel campo in maniera massiccia e continua ti consiglio di metterci un indice su

    però tieni conto che rallenti gli update e le insert ed anche le delete...

    quindi...se fai continue select usando quel campo...metticci un indice su...altrimenti niente

    PS: usa sempre campi not null

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    Re: Re: Re: Re: [php] Curiosità: secondo voi, conviene fare in sql count(*) oppure co

    grazie delle info ad entrambi
    わさび

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.