Warum würde jemand brauchen, eine in-memory-Datenbank?
Habe ich gelesen, dass einige Datenbanken können verwendet werden, im Speicher, kann aber nicht glauben, der Grund, warum jemand wollen, um diese Funktion zu nutzen. Ich benutze immer eine Datenbank zum speichern von Daten und Speicher-caches für einen schnellen Zugriff.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cache ist auch eine Art von Datenbank, wie ein Datei-system ist. 'Cache-Speicher' ist nur eine spezielle Anwendung der in-memory-Datenbank und einige in-memory-Datenbanken sind darauf spezialisiert, memory-caches.
Andere Anwendungen von in-memory-Datenbanken bereits in anderen Antworten, aber lassen Sie mich aufzählen, die verwendet zu:
Häufig wird, um unit - /integration-tests.
Die Sie nicht wirklich über die noch bestehenden Daten zwischen jedem test ausgeführt werden und Sie möchten tests so schnell wie möglich, um Menschen zu ermutigen, tun Sie oft). Hosting einer Datenbank, die in-Prozess gibt Ihnen einen sehr schnellen Zugang zu den Daten.
Macht Ihrem Speicher-cache von SQL-Unterstützung?
Wie über Sie berücksichtigen die in-memory-Datenbank als wirklich clever cache?
Dass lässt Fragen, wie die in-memory-Datenbank bekommt besiedelten und wie Sie aktualisiert werden verwaltet und die Konsistenz gewahrt ist, über mehrere Instanzen.
Suche nach etwas unter 100000 Elementen ist langsam, wenn Sie nicht verwenden tricks wie Indizes. Diese tricks sind bereits implementiert, eine Datenbank-engine (sei es dauerhaft oder in-memory).
Einer in-memory-Datenbank könnte eine effizientere Suchfunktion als das, was Sie vielleicht in der Lage sein zu implementieren, die sich schnell über selbst geschriebene Strukturen.
In-memory-Datenbanken sind in etwa mindestens eine Größenordnung schneller als die traditionelle RDBMS für Allgemeine Zwecke (Seite Lesen) Abfragen. Die meisten sind Festplatten-unterstützt die Bereitstellung der gleichen Konsistenz wie eine normale RDBMS - nur fangen die gesamten Daten müssen passen in den RAM.
Den Kern der Idee ist Festplatten-Speicher gesichert hat riesige random-access-Strafen, die nicht für DRAM. Daten können index/organisiert in einem random-access-optimierte Art und Weise nicht möglich ist mit traditionellen RDBMS-Daten-caching-Systeme.
Anwendungen, die Echtzeit-Reaktionen verwenden möchten, eine in-memory-Datenbank, vielleicht Anwendung zur Steuerung von Flugzeugen, Anlagen, in denen die Antwortzeit ist entscheidend
Einer in-memory-Datenbank ist auch nützlich, um Spiel-Programmierung. Sie können speichern Ihre Daten in einer in-memory-Datenbank, die ist viel schneller als permanente Datenbanken.
Sind Sie wie eine erweiterte Datenstruktur zum speichern, Abfragen und Bearbeiten-runtime Daten.
Möglicherweise benötigen Sie die Datenbank, wenn mehrere unterschiedliche Anwendungen gehen, um auf den Datensatz zugreifen. Eine Datenbank ist eine einheitliche Schnittstelle für den Zugriff auf /ändern von Daten, die Ihre hash-Tabelle (oder was auch immer Sie verwenden) nicht haben.
Wenn ein einziges Programm ist der Umgang mit den Daten, dann ist es vernünftig, sich nur mit einer Daten-Struktur, in welcher Sprache Sie verwenden obwohl.
In-memory-Datenbank besser als die Durchführung Datenbank-caching.
Datenbank-caching funktioniert so ähnlich, wie in-memory-Datenbanken, wenn es um LESE-Operationen.
Auf der anderen Seite, wenn es um SCHREIB-Operationen, in-memory-Datenbanken sind schneller, wenn im Vergleich zu Datenbank-caches, bei denen die Daten persistent auf die Festplatte (das führt zu den IO-overhead).
Außerdem mit Datenbank-caching können Sie am Ende mit cache findet, aber Sie nie am Ende mit cache-misses bei der Verwendung von in-memory-Datenbanken.
Aufgrund Ihrer Geschwindigkeit und der sinkende Preis von RAM, ist es wahrscheinlich, dass in-memory-Datenbanken wird die dominierende Technologie in der Zukunft. Es gibt schon einige, die hochentwickelten Funktionen wie SQL-Abfragen, Sekundär-Indizes und-Motoren für die Verarbeitung von Datensätzen, die größer als der RAM.