2012-11-24 18 views
5

Volevo sapere se è una buona pratica utilizzare SQLite come memoria di sessione principale o almeno come archiviazione di una sessione di backup con memcached primario?SQLite come archivio sessione

Potrebbe fornirmi alcuni vantaggi e svantaggi?

(Sto costruendo un framework MVC a fini di istruzione e pensava a diverse possibilità e implemetations)

risposta

5

SQLite Pro

  • più veloce di sessioni basati su file
  • può essere distribuito in cui le sessioni di file basato sono più imbarazzante

SQLite Contro

  • richiede SQLit e che crea una dipendenza e qualcos'altro da monitorare
  • più difficile implementare quelle sessioni basate su file nativi
  • grandi applicazioni possono rapidamente uccidere la tabella sql da così tante richieste di lettura e scrittura, frammentazione, aggiornamenti dell'indice, ecc. pagina colpire colpo che specifica tabella

Anche soluzione migliore - Memcache

Dal sessioni sono di solito accessibili con ogni pagina tira avrebbe senso utilizzare il meccanismo più veloce possibile senza tutto il sovraccarico di un dat abase layer pur continuando a funzionare in un sistema distribuito (più server PHP, ad esempio).

Usa Memcache che è ben testato con PHP e puoi anche integrare le sessioni di memcache semplicemente modificando alcune impostazioni di php.ini o per un controllo più fine (o per usare altri software come redis) puoi creare la tua sessione personalizzata handler.

Questo ha diversi vantaggi e svantaggi

Memcache Pro

  • molto molto veloce
  • scala bene
  • Facile da implementare tramite PHP.INI

Memcache Contro

  • un altro servizio che ha il potenziale di crash e richiede un monitoraggio
  • Usa RAM che di solito è una risorsa limitata compaired di spazio su HDD e richiede anche un monitoraggio

Anche se dovresti usare un altro software per monitorare entrambe le cose o scrivere uno script di lavoro cron che c hecks il servizio memcache è ancora in esecuzione - ma questa è un'altra domanda e risposta per un altro giorno. Il punto è che questi svantaggi possono essere in qualche misura attenuati.

Ulteriori approfondimenti sugli argomenti trattati

+0

OK E se Li uso entrambi se accessibili che sia .. Diciamo che il primario è memcache/d e quando ne viene creato uno nuovo da aggiungere in SQLite e SQLite da usare solo se memcache/d è inattivo? –

+0

Sessioni primarie e secondarie? Ay!? No, segui solo memcache: non crederesti solo quanto sia più veloce rispetto a SQLite o alle sessioni basate su file. Se memcache è inattivo, riavvialo! Sotto un sito con traffico intenso, se si parla di memcache al 50%, quando rientra in SQLite molto probabilmente andrà in crash comunque !!! Con memcache otterrai molto più rendimento rispetto a sqlite, il che significa che non puoi ricorrere a questo. Se si desidera ricorrere a qualcosa, deve essere almeno basato sulla memoria (ad esempio APC, ma non verrà distribuito poiché è solo una cache locale). – VBAssassin

+0

Non è meglio avere un'alternativa sicura ai guasti? –

0

sessione basi di file di PHP è piuttosto buona e veloce, utilizzando SQLite per memorizzare la sessione solo aggiungere in testa al vostro gestione delle sessioni.

2

sessioni basate su file sono una cattiva idea, perché il file viene bloccato se non chiudi l'accesso in scrittura alla sessione (session_write_cl ose();). Ma perché dovresti limitare te stesso/theServer quando devi semplicemente usare sqlite per evitare questo problema?

così SQLite pro: - semplice da utilizzare (modificare config php.ini):

session.save_handler = sqlite 
session.save_path = "/path/sessions.db" 
  • più veloce per caricare le pagine (sessione può ora lavorare in parallelo)
  • più veloce con ajax
  • build in funzionalità

sqlite con

  • più lento di scrivere alla sessione

vorrei utilizzare apc, ma poi ho bisogno di attuazione e io sono preoccupato che potrebbe finire in problemi di sicurezza ...

+0

Se si utilizza APC, è possibile crittografare i dati nelle sessioni ma si consumerà più tempo di esecuzione. –

+0

Grazie per aver incluso anche la configurazione di esempio e menzionato il problema del "blocco" con i file. – kouton

Problemi correlati