2014-09-12 16 views
10

Recentemente ho sentito parlare del concetto di database In memoria.Differenza tra database di memoria e database di memoria su disco

In qualsiasi tipo di database stiamo finalmente memorizzando i dati nel computer, da lì il nostro programma otterrà i dati. Come in memoria le operazioni di database sono veloci rispetto alle altre.

Il database in memoria carica tutti i dati dal database in memoria (RAM).

Grazie in anticipo ....

risposta

12

un database in-memory (IMDB, anche di sistemi di database di memoria principale o MMDB o di database residente in memoria) è un sistema di gestione di database che si basa principalmente sulla memoria principale per la memorizzazione dei dati del computer . È in contrasto con i sistemi di gestione di database che impiegano un meccanismo di archiviazione su disco. I database di memoria principale sono più veloci dei database ottimizzati per il disco in quanto gli algoritmi di ottimizzazione interni sono più semplici ed eseguono meno istruzioni della CPU. L'accesso ai dati in memoria elimina il tempo di ricerca durante l'interrogazione dei dati, che fornisce prestazioni più veloci e più prevedibili rispetto al disco.

Le applicazioni in cui i tempi di risposta sono critici, come quelli che utilizzano apparecchiature di rete per telecomunicazioni e reti pubblicitarie mobili, utilizzano spesso database di memoria principale.

In risposta alla query, sì carica i dati nella RAM del computer.

Basi di dati su disco

  • tutti i dati memorizzati sul disco, disco I/O bisogno di spostare i dati nella memoria principale quando necessario.

  • I dati vengono sempre mantenuti su disco.

  • Strutture dati tradizionali come B-Trees progettate per memorizzare tabelle e indici in modo efficiente su disco.

  • Dimensioni del database praticamente illimitate.

  • sostegno molto ampio insieme di carichi di lavoro, vale a dire OLTP, data warehousing, carichi di lavoro misti, ecc

In-Memory Database

  • Tutti i dati memorizzati nella memoria principale , non è necessario eseguire I/O su disco per interrogare o aggiornare i dati.

  • I dati sono persistenti o volatili a seconda del database del database in memoria.

  • Strutture dati e strutture di indice specializzate presuppongono che i dati siano sempre nella memoria principale.

  • Ottimizzato per carichi di lavoro specializzati; ovvero comunicazioni carichi di lavoro HLR/HSS specifici del settore.

  • Dimensioni del database limitate dalla quantità di memoria principale.

2

In-memory db di solito ha l'intero database in memoria. (come MySQL DB Engine MEMORY) Questo è un enorme incremento delle prestazioni, ma la RAM è costosa e spesso non persistente, quindi perdi i dati al riavvio. Esistono alcuni modi per ridurre l'ultimo problema, ad es. da istantanee temporizzate o replica su un database del disco. Inoltre ci sono alcuni tipi ibridi, con solo una parte del db in memoria.

5

offerte MySQL

MySQL ha diversi "Motori". In tutti i motori, le azioni vengono eseguite nella RAM. I motori differiscono in modo significativo per quanto sono bravi a garantire che i dati "persistano" sul disco.

MOTORE = MEMORIA - Questo è non persistente; i dati si trovano solo nella RAM. È limitato ad alcune dimensioni massime preimpostate. In caso di interruzione di corrente, tutti i dati (in una tabella MEMORY) vengono persi.

MOTORE = MyISAM - Questo è un vecchio motore; persiste i dati su disco, ma in caso di interruzione di corrente, a volte gli indici sono corrotti e hanno bisogno di "riparazione".

MOTORE = InnoDB - Questo è il motore preferito. Non persiste solo sul disco ma "garantisce" la coerenza anche in caso di mancanza di corrente.

+0

Ci sono molti più motori in MariaDB. MySQL 8.0 avrà un motore Temp table. –

0

Ci sono anche database in-memory come Tarantool che possono funzionare con set di dati più grandi della RAM disponibile. Tarantool è in grado di lavorare con questi set perché è ottimizzato per le scritture casuali veloci, il principale collo di bottiglia che si presenta.

Problemi correlati