wake-up-neo.com

Unterschied zwischen In-Speicher-Datenbanken und Plattenspeicher-Datenbank

Kürzlich habe ich von dem Konzept der In-Memory-Datenbank gehört.

In jeder Art von Datenbank speichern wir schließlich die Daten auf dem Computer, von dort erhält unser Programm die Daten. Wie schnell sind Datenbankoperationen im Vergleich zu den anderen schnell.

Lädt die Datenbank im Speicher alle Daten aus der Datenbank in den Arbeitsspeicher (RAM).

Danke im Voraus....

13
PSR

Eine In-Memory-Datenbank (IMDB; auch Hauptspeicher-Datenbanksystem oder MMDB oder Memory Resident Database) ist ein Datenbankverwaltungssystem, das in erster Linie Hauptspeicher zum Speichern von Computerdaten verwendet. Im Gegensatz zu Datenbankverwaltungssystemen, die einen Plattenspeichermechanismus verwenden. Hauptspeicher-Datenbanken sind schneller als festplattenoptimierte Datenbanken, da die internen Optimierungsalgorithmen einfacher sind und weniger CPU-Anweisungen ausführen. Durch den Zugriff auf Daten im Speicher entfällt die Suchzeit beim Abfragen der Daten, was eine schnellere und besser vorhersagbare Leistung als die Festplatte bietet.

Anwendungen, bei denen die Antwortzeit von entscheidender Bedeutung ist, wie zum Beispiel Anwendungen für Telekommunikationsnetzwerke und mobile Werbenetzwerke, verwenden häufig Hauptspeicherdatenbanken.

Als Antwort auf Ihre Frage: Ja, es lädt die Daten in RAM Ihres Computers. 

On-Disk-Datenbanken

  • Alle Daten, die auf der Festplatte und der Festplatten-E/A gespeichert sind, mussten bei Bedarf in den Hauptspeicher Verschoben werden.

  • Daten werden immer auf der Festplatte gespeichert.

  • Herkömmliche Datenstrukturen wie B-Trees sind dafür ausgelegt, Tabellen und Indizes effizient auf der Festplatte zu speichern.

  • Praktisch unbegrenzte Datenbankgröße.

  • Unterstützung für sehr breite Workloads, z. B. OLTP, Data Warehousing, Gemischte Workloads usw.

In-Memory-Datenbanken

  • Alle Daten, die im Hauptspeicher gespeichert sind, müssen keine Festplatten-E/A ausführen, um Abzufragen oder Daten zu aktualisieren.

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

  • Spezialisierte Datenstrukturen und Indexstrukturen setzen voraus, dass sich Immer im Hauptspeicher befindet.

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

  • Datenbankgröße begrenzt durch den Hauptspeicher.

21
DeepInJava

MySQL-Angebote

MySQL hat mehrere "Engines". In allen Engines werden Aktionen im RAM ausgeführt. Die Engines unterscheiden sich erheblich 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 eine voreingestellte Maximalgröße beschränkt. Bei einem Stromausfall gehen alle Daten (in einer MEMORY-Tabelle) verloren.

ENGINE = MyISAM - Dies ist eine alte Engine; Die Daten bleiben auf der Festplatte erhalten, aber im Falle eines Stromausfalls sind die Indizes manchmal beschädigt und müssen "repariert" werden.

ENGINE = InnoDB - Dies ist die bevorzugte Engine. Es bleibt nicht nur auf der Festplatte erhalten, sondern gewährleistet auch bei Stromausfällen die Konsistenz.

6
Rick James

In-Memory-DBs haben normalerweise die gesamte Datenbank im Speicher. (wie MySQL DB Engine MEMORY) Dies ist eine enorme Leistungssteigerung, aber RAM ist teuer und oft nicht dauerhaft, so dass beim Neustart Daten verloren gehen. Es gibt einige Möglichkeiten, das letzte Problem zu reduzieren, z durch zeitgesteuerte Momentaufnahmen oder Replikation auf einer Festplattendatenbank. Außerdem gibt es einige Hybridtypen mit nur einem Teil der Datenbankspeicher.

2
dek

Es gibt auch In-Memory-Datenbanken wie Tarantool, die mit Datensätzen arbeiten können, die größer sind als der verfügbare Arbeitsspeicher. Tarantool ist in der Lage, mit diesen Sets zu arbeiten, da es für schnelles zufälliges Schreiben, den wichtigsten Engpass, optimiert ist.

0
eabates