2014-09-12 8 views
10

Kürzlich hörte ich über das Konzept der In Memory-Datenbank.Unterschied zwischen In Speicher-Datenbanken und Disk-Speicher-Datenbank

In jeder Art von Datenbank speichern wir schließlich die Daten im Computer, von dort wird unser Programm die Daten bekommen. Wie im Speicher sind Datenbankoperationen im Vergleich zu den anderen schnell.

Wird die In-Memory-Datenbank alle Daten aus der Datenbank in den Arbeitsspeicher (RAM) laden.

Vielen Dank im Voraus ....

Antwort

12

In-Memory-Datenbank (IMDB, auch Hauptspeicher-Datenbanksystem oder MMDB oder speicherresidente Datenbank) ist ein Datenbank-Management-System, das für die Speicherung von Computerdaten auf Hauptspeicher beruht in erster Linie . Dies steht im Gegensatz zu Datenbankverwaltungssystemen, die einen Plattenspeichermechanismus verwenden. Hauptspeicherdatenbanken sind schneller als plattenoptimierte Datenbanken, da die internen Optimierungsalgorithmen einfacher sind und weniger CPU-Anweisungen ausführen. Durch den Zugriff auf Daten im Speicher wird die Suchzeit bei der Abfrage der Daten eliminiert, wodurch eine schnellere und vorhersagbarere Leistung als mit der Festplatte erzielt wird.

Anwendungen, bei denen die Reaktionszeit kritisch ist, z. B. bei Telekommunikationsnetzwerken und mobilen Werbenetzwerken, verwenden häufig Hauptspeicherdatenbanken.

Als Antwort auf Ihre Frage, ja lädt es die Daten im RAM Ihres Computers.

On-Disk-Datenbanken

  • Alle Daten auf der Festplatte gespeichert, Disk-I/O benötigten Daten in dem Hauptspeicher zu bewegen, wenn nötig.

  • Daten werden immer auf Platte gespeichert.

  • Traditionelle Datenstrukturen wie B-Trees entworfen, um Tabellen und Indizes effizient auf der Festplatte zu speichern.

  • Praktisch unbegrenzte Datenbankgröße.

  • Unterstützung sehr breites Spektrum von Workloads, dh OLTP, Data Warehousing, gemischte Workloads usw.

In-Memory-Datenbanken

  • Alle im Hauptspeicher gespeicherten Daten , keine Festplatten-E/A erforderlich, um abzufragen oder Daten zu aktualisieren.

  • Daten sind abhängig von der In-Memory-Datenbank persistent oder flüchtig Produkt.

  • Spezialisierte Datenstrukturen und Indexstrukturen nehmen an, dass die Daten immer im Hauptspeicher sind.

  • Optimiert für spezialisierte Workloads; d.h. Kommunikationen branchenspezifische HLR/HSS-Arbeitslasten.

  • Datenbankgröße begrenzt durch die Größe des Hauptspeichers.

2

In Arbeitsspeicher db haben in der Regel die gesamte Datenbank im Speicher. (wie MySQL DB Engine MEMORY) Dies ist eine enorme Leistungssteigerung, aber RAM ist teuer und oft nicht persistent, so dass Sie Daten beim Neustart verlieren würden. Es gibt einige Möglichkeiten, das letzte Problem zu reduzieren, z. durch zeitgesteuerte Snapshots oder Replikation auf einer Disk-Datenbank. Auch gibt es einige hybride Typen, mit nur einem Teil der db im Speicher.

5

MySQL Angebote

MySQL mehrere "Engines" hat. In allen Engines werden Aktionen im RAM ausgeführt. Die Engines unterscheiden sich signifikant darin, wie gut sie dafür sorgen, dass die Daten auf der Festplatte "bestehen".

ENGINE = MEMORY - Dies ist nicht persistent; Die Daten werden nur im RAM gefunden. Es ist auf einige voreingestellte maximale Größe beschränkt. Bei einem Stromausfall gehen alle Daten (in einer MEMORY-Tabelle) verloren.

MOTOR = MyISAM - Dies ist ein alter Motor; Die Daten bleiben auf dem Datenträger erhalten, aber im Falle eines Stromausfalls sind die Indizes manchmal beschädigt und müssen repariert werden.

MOTOR = InnoDB - Dies ist der bevorzugte Motor. Es besteht nicht nur auf der Festplatte, sondern garantiert Konsistenz auch bei Stromausfällen.

+0

Es gibt mehrere weitere Engines in MariaDB. MySQL 8.0 wird eine Temp-Tabellen-Engine haben. –

0

Es gibt auch In-Memory-Datenbanken wie Tarantool, die mit Datensätzen arbeiten können, die größer sind als der verfügbare RAM. Tarantool ist in der Lage, mit diesen Sets zu arbeiten, da es für schnelle zufällige Schreibvorgänge optimiert ist, die den größten Engpass darstellen.