• User Newbie

    Scrivere un file txt in php è più veloce (leggero) che aggiornare una tabella mysql?

    Sto creando delle piccole statistiche per i miei siti (no, non voglio usare anlitycs, metrica o altro) e per prima cosa mi servono gli ip dei visitatori, per sapere se è una nuova visita o lo stesso visitatore che visita un altra pagina.

    Gli ip si possono sicuramente salvare in una tabella mysql, e cancellare ogni due ore (un visitatore difficilmente passa più di due ora nei miei siti) per non appesantire troppo la tabella inutilmente.

    Ma poi per ogni visita devi cercare nella tabella se l'ip è già presente, per capire se nuova visita o nuova pagina, e in base al risultato aggiornare altre tabelle, un continuo via vai di connessioni e modifiche su tabelle mysql.

    Forse non è il modo più veloce, leggero per farlo...

    Si potrebbe essere più semplice salvare gli ip in un file, con la funzione, file_put_contents, creare un nuovo file ogni ora e cancellare i più vecchi di tre ore (per ogni sito).
    Però aprire il file ad ogni visita per verificare se un ip è già stato aggiunto, temo sia un operazione pesante e faticosa per il server, forse anche più lunga e faticosa che aprire una nuova connessione e modificare una tabella mysql?

    Potrei anche solo aggiungere tutti gli ip ad ogni visita (anche se doppioni) al file e verificare in seguito se gli ip sono duplicati con un cronjob ogni mezzanotte, ma creare un file costantemente aggiornato con tutti gli ip dei miei visitatori potrebbe essere comunque più pesante che aggiornare costantemente mysql? (Nel mio server attualmente ci possono essere anche 500.000 pagine visualizzate in un giorno)

    E come ultima follia... potrei usare i file di log di apache? Uno script in php potrebbe accedervi ed elaborare e caricare i miei dati in un db tramite un crontab?
    (anche se preferirei non usarli perché con uno script php in ogni pagina del mio sito potrei rilevare anche altri miei parametri o comunque dati non presenti nei log di apache)