La procedura migliore è quella di avere una tabella in cui salvi la sessione di navigazione di ogni utente.
Ogni volta che un utente naviga in una pagina aggiorni la data della sua sessione.
Per vedere chi è online fai un'unica query in cui estrai le sessioni aggiornate negli ultimi, ad esempio, 5 minuti