Gli utenti nel mio webgame stanno avendo alcune informazioni sui giocatori nella cache $ _SESSION di PHP. Ogni volta che caricano il gioco controlla se la sessione esiste, altrimenti ottengono le informazioni sul giocatore da un database MySQL e quindi vengono memorizzate nella $ _SESSION.Cos'è più veloce? File_exist o query MySQL?
Ora il mio problema è, che succede se le informazioni sul giocatore vengono aggiornate da un altro processo o giocatore? Non possono aggiornare la cache $ _SESSION dell'altro giocatore.
So che memcached è probabilmente la soluzione per questo, ma non sono sicuro se dovrei prendere il tempo per qualcosa di simile. $ _SESSION cache sta andando bene per me, tranne che per questo.
- stavo pensando di creare una tabella MySQL per esso che viene letto ad ogni richiesta e se c'è un record per il giocatore che ricrea la cache.
- Un'altra soluzione potrebbe essere quella di creare un file in una directory con l'ID del lettore nel nome del file. Ogni richiesta PHP verificherà con
file_exist
se dovrebbe cancellare la cache o meno.
Cosa vorresti fare? Viene eseguita ogni richiesta, quindi è molto importante ottenere questo ottimizzato.
Andrà per l'opzione database, La velocità non ci sarà molta differenza con un buon schema di database. Ma non si tratta solo di velocità, ma anche di una migliore gestione –
Se non si tratta di un caso estremamente eccezionale, si va sempre per un database. Nel mondo reale RMDB può essere più veloce del file flat (se i dati sono già stati caricati nella memoria o nella tabella completa adatta alla memoria disponibile.) – Dasun