• User Newbie

    Coda di Query con PHP

    Salve a tutti Avrei un quesito, diverso dal solito, da porvi... Conoscete un modo per mantenere delle query ( nella fattispecie insert ed update ) in memoria senza eseguirle "al volo" ? Devo ottimizzazre il più possibile un prodotto che ospita migliaia e migliaia di utenti ed il cliente ha richiesto che le query meno importanti vengano memorizzate da una parte e, ogni tot di ore, tramite un cron vengano effettuati tutti i calcoli ed inserite fisicamente nel db... Ovviamente sono stati scartati i files di testo o simili ( perchè avrebbero l'effetto contrario che è quello di rallentare il sistema ) e delle tabelle temporanee ( perchè comunque per inserirvi i dati occorrerebbe effettuare delle insert e, a quel punto, si potrebbero fare direttamente sul sistema )... Non ho delle query predefinite che effettuano una insert di un preciso dato... Vi faccio un esempio: Utente A clicca sul profilo di Utente B e genera una INSERT nella tabella "clicks" Utente B vota Utente C e genera una INSERT nella tabella "voti" Io devo memorizzare tutte le INSERT generate dalle richieste degli utenti e, ad una certa ora, effettuarle tutte insieme in sequenza come se fossero in coda... Grazie anticipatamente per una vostra eventuale risposta


  • ModSenior

    Ciao Aritmico e benvenuto nel Forum GT.

    secondo il modesto parere hai praticamente escluso gia' tutte le possibilita' da solo.

    Mi chiedo.. una soluzione con insert/update immediato guidata da script ajax-like (per essere asincrone rispetto al flusso di navigazione degli utenti) non ti andrebbe bene?


  • User Newbie

    Rispetto alla richiesta no: AJAX permette solo di "mascherare" l'azione non facendo attendere l'utente con pagine di redirezione ma allietandolo con qualche effetto ed in realtà la query la sta eseguendo.

    Quello che mi è stato chiesto è di inserire questa coda "in memoria RAM"...

    A te questa definizione ti fa venire in mente qualcosa ?


  • ModSenior

    Non mi riferivo esattamente a questo.

    Se ti fermi a considerare AJAX un "effetto decorativo" concordo con te.
    Se invece lo intendi usare per ottimizzare l'applicazione e i tempi di risposta ti dico che ho gia' usato AJAX per eseguire il logging delle azioni utente proprio come stai dicendo tu ma su un progetto di entità e volumi ridotti.
    Potresti testare se la soluzione e' soddisfacente e si confa' anche al tuo caso.

    Altrimenti mi viene in mente ben poco altro... forse la shared memory su un sistema *nix ma brancolo nel campo delle ipotesi (non avendone mai avuto bisogno non ho mai approfondito).


  • Bannato User Attivo

    @Aritmico said:

    Quello che mi è stato chiesto è di inserire questa coda "in memoria RAM"...

    A te questa definizione ti fa venire in mente qualcosa ?

    dev.mysql.com/doc/refman/5.0/en/insert-delayed.html