Copiare MySQL in RAM come sostituzione memcached di un povero?

Che dire di questa idea:

  • Ho un database MySQL da 4 GB, con pochi UPDATE.
  • Al momento dell'avvio del sistema, la copiamo in RAM e l'eseguiamo da lì.
  • Ogni due ore o addirittura su AGGIORNAMENTI, lo immondo sul disco.

… come una sorta di sostituzione del povero per riconsiderare tutte le routine di codice usando il db e implementando memcached o simili.

  • Imansible installare PHP e MySQL su CentOS 5 64 bit
  • Il modo migliore per assicurarsi che un database MySQL sia completamente in UTF8
  • Come faccio a migrare le tabelle dal mio server MySQL esistente a un nuovo?
  • MySQL consente l'accesso senza password
  • MySQL: come triggersre il registro di query lento?
  • Migliori pratiche per il backup di database
  • 3 Solutions collect form web for “Copiare MySQL in RAM come sostituzione memcached di un povero?”

    Utilizzare il motore di memorizzazione MEMORY su un slave di sola lettura per eseguire le tue letture, è esattamente quello che vuoi e una configuration sana. Dimenticate "scaricarla sul disco" (?!) O altre cose strane.

    Puoi anche mettere lo schiavo come un'altra istanza sul tuo server esistente se non puoi permettersi di impostare uno slave dedicato, ma correttamente impostando i parametri MySQL per i carichi di lavoro per la maggior parte leggermente comporterà un miglioramento significativo delle performance anche!

    utilizzare il motore innodb per tutte le vostre tabelle, nel mio.cnf impostare innodb_buffer_pool_size a 2-3GB di ram, durante la fase di avvio eseguire la scansione completa tabella per tutte le tabelle [o solo mysqldump -A]. questo dovrebbe darti performance decisamente decenti a sola lettura se hai buoni indici su tutte le tabelle.

    anche se andate con questa soluzione il tuo codice sarà più semplice – non dovrai fare a less di tornare indietro dalle tabelle in-MEMORY alle tabelle myisam / on-disk.

    Tiro al buio, ma in primo luogo stai verificando problemi di performance?

    In secondo luogo, se hai problemi di performance, dovrai guardare al tuning. Regolare l'applicazione (se sei il dev o hai privilegi di strangolamento sui dev) per utilizzare le query corrette in modo da non utilizzare enormi JOIN e simili.

    Quindi guardi l'architettura del database. Fare soluzioni alternative goofy lo renderà una mal di testa più grande per gestire in seguito. I passaggi da seguire dipendono dal tuo caso di utilizzo. Potresti prendere in considerazione l'opportunità di scalare in modo verticale un server bassissimo, quindi metterlo dietro un server memcached e creare una sola lettura solamente per eseguire report e backup.

    Non togliere la RAM dal database per provare uno schema che sovrasta la buona pratica. Ci sono blog per l'ottimizzazione del database ad alte performance disponibili per dare idee e il blog podcast di StackOverflow ha statistiche su come funziona questo sito (MS Stack); traffico relativamente pesante, ma non una configuration complicata.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.