Question

J'ai lu que quelques bases de données peuvent être utilisées en mémoire mais ne peut pas penser à la raison pour laquelle quelqu'un voudrait utiliser cette fonction. J'utilise toujours une base de données de persistance des données et des caches de mémoire pour un accès rapide.

Était-ce utile?

La solution

Cache est aussi une sorte de base de données, comme un système de fichiers est. « Cache de mémoire » est juste une application spécifique d'une base de données en mémoire et certains sont spécialisés bases de données en mémoire cache de mémoire.

D'autres utilisations de bases de données en mémoire ont déjà été inclus dans d'autres réponses, mais permettez-moi d'énumérer les usages aussi:

  1. cache de mémoire. Habituellement, un système de base de données spécialisée pour cette utilisation (et probablement appelé « une mémoire cache » plutôt que « une base de données ») sera utilisé.
  2. code lié à la base de données-test. Dans ce cas, souvent un mode « en mémoire » de certains systèmes de base de données générique sera utilisée, mais aussi une base de données dédiée « en mémoire » peut être utilisé pour remplacer autre base de données « sur disque » pour tester plus rapidement.
  3. manipulation de données sophistiquées. En mémoire des bases de données SQL sont souvent utilisés de cette façon. SQL est un excellent outil pour la manipulation de données et parfois il n'y a pas besoin d'écrire les données sur le disque lors du calcul du résultat final.
  4. Stockage de l'état d'exécution transitoire. Il y a application qui ont besoin de stocker leur état dans une sorte de base de données, mais ne doit pas persister que sur le redémarrage de l'application. Pensez à une sorte de gestionnaire de processus -. Il a besoin de garder une trace des sous-processus en cours d'exécution, mais que les données ne sont valables tant que l'application et les sous-processus sont exécutés

Autres conseils

Un cas d'utilisation courante consiste à exécuter des tests unité / intégration.

Vous ne se soucient pas vraiment de la persistance des données entre chaque essai et que vous voulez les tests à exécuter le plus rapidement possible (pour encourager les gens à les faire souvent). Hébergement une base de données en cours vous donne un accès très rapide aux données.

Votre mémoire en cache ont un soutien SQL?

Et vous considérez comme la base de données en mémoire comme un cache vraiment intelligent?

Cela ne les questions de congé de la façon dont la base de données est préservée et comment se peuplé mises à jour sont gérées en mémoire et la cohérence entre plusieurs instances.

A la recherche de quelque chose entre 100000 éléments est lent si vous n'utilisez pas comme des tours d'index. Ces astuces sont déjà mises en œuvre dans un moteur de base de données (que ce soit persistante ou en mémoire).

Une base de données en mémoire peut offrir une fonction de recherche plus efficace que ce que vous pourriez être en mesure de vous mettre en œuvre rapidement sur les structures écrites auto.

bases de données en mémoire sont à peu près au moins un ordre de grandeur plus rapide que pour les requêtes SGBDR traditionnelles à usage général (côté lecture). La plupart sont disque sauvegardé fournissant le même consistance que SGBDR normale -. Attraper que l'ensemble de données complet doit entrer dans la RAM

L'idée de base est le stockage soutenu disque a d'énormes pénalités d'accès aléatoire qui ne sont pas applicables à la DRAM. Les données peuvent être index / organisé de manière optimale l'accès aléatoire impossible à partir des données de SGBDR traditionnels schémas de mise en cache.

Applications, qui nécessitent des réponses en temps réel souhaite utiliser une base de données dans la mémoire, l'application peut-être des avions de contrôle, les plantes où le temps de réponse est critique

Une base de données dans la mémoire est également utile dans la programmation de jeux. Vous pouvez stocker des données dans une base de données dans la mémoire de ce qui est beaucoup plus rapide que les bases de données permanentes.

Ils sont utilisés en tant que structure de données de pointe pour stocker, interroger et de modifier les données d'exécution.

Vous pouvez avoir besoin d'une base de données si plusieurs applications différentes vont accéder à l'ensemble de données. Une base de données a une interface cohérente pour l'accès / modification de données, que votre table de hachage (ou tout ce que vous utilisez) n'auront pas.

Si un seul programme traite avec les données, alors il est raisonnable d'utiliser simplement une structure de données dans la langue que vous utilisez bien.

base de données en mémoire est meilleure que la mise en cache d'effectuer la base de données. la mise en cache de base de données fonctionne de manière similaire aux bases de données en mémoire en ce qui concerne les opérations de lecture.

D'autre part, en ce qui concerne les opérations d'écriture, les bases de données en mémoire sont plus rapides par rapport aux caches de bases de données, où les données sur le disque persistée (ce qui conduit à IO en tête).

En outre, avec la base de données mise en cache, vous pouvez terminer avec cache, mais misses vous ne serez jamais finir avec défauts de cache lors de l'utilisation des bases de données en mémoire.

Compte tenu de leur vitesse et la baisse du prix de la RAM, il est probable que les bases de données en mémoire deviendront la technologie dominante dans l'avenir. Il y a déjà certains qui ont développé des fonctionnalités sophistiquées comme des requêtes SQL, les index secondaires, et des moteurs pour des ensembles de données de traitement de plus de RAM.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top