Les avantages d'une Base de données en mémoire dans SQLite
J'ai lu sur le mot-clé ":la mémoire:" à partir d'un livre sur SQLite aujourd'hui, mais il ne dit que ce qu'il est, comment l'utiliser et les explications étaient trop courts. J'ai donc cherché pour plus d'informations, cliquez ici, mais ne pouvait pas obtenir SQLite spécifiques info.
-
Quels sont les avantages de ':mémoire: "mode ont? (Quand dois-je besoin?)
-
Base de données en mémoire de la performance est plus rapide?
-
Dois-je encore besoin d'utiliser des transactions sur une base de données En mémoire?
- Principal avantage, la performance. Lors de la connexion à la base de données est fermée, il disparaît. Voir stackoverflow.com/questions/849679/...
- Merci, mais j'ai déjà lu le thread et il n'était pas clair à propos de la performance. J'ai aussi lu quelques discussions sur d'autres SGBD tel que MySQL, et les bases de données temporaires n'ont pas été plus rapide. C'est pourquoi j'ai demandé ici..
- Il y a une différence entre une "base de données temporaire/de la table" et une "mémoire de la base de données" temporaire peut être encore sur le disque.
- Je ne le savais pas, merci!! Ensuite, ce que vous avez dit est juste? Des performances plus rapides??
- Pas nécessairement beaucoup plus rapide: stackoverflow.com/questions/764710/... YMMV
Vous devez vous connecter pour publier un commentaire.
Un SQLite base de données en mémoireprincipal avantage est de la performance: plutôt que de la lecture et de l'écriture sur le disque, il conservera l'intégralité de la base de données en mémoire. La mémoire est beaucoup plus rapide que le disque. Vous verrez la plus grande amélioration de la performance avec un disque en rotation ou un très IO chargé de serveur, et encore moins avec un SSD.
Cependant, ce n'est pas une panacée pour le mal écrits des requêtes et des tables. Avant de vous rejoindre pour une base de données en mémoire pour améliorer les performances, assurez-vous d'optimiser votre conception des tables, des requêtes et des index.
Les principaux inconvénients sont une fois que le processus se termine à la base de données est allé. Et la base de données ne peut pas être plus grand que la mémoire disponible.
S'engage peut être plus rapide car il n'y a pas besoin de l'écrire sur le disque, de sorte que le mode de validation automatique pourrait être plus rapide, mais les transactions doivent toujours être utilisés pour garantir l'intégrité des données.
Noter qu'une temporaire base de données SQLite qui ne soit pas trop grand va probablement être stockées dans la mémoire.
En raison de ses inconvénients, et parce que vous avez beaucoup moins de mémoire de stockage, avant de s'engager dans une base de données en mémoire essayez une base de données temporaire à la place. Ceci est fait en utilisant
''
pour le nom de fichier de base de données. Cela permettra d'écrire dans un fichier temporaire, mais du tampon de travail dans une mémoire cache. C'est le meilleur des deux mondes, vous obtenez une meilleure performance sans utiliser trop de mémoire.Profil et de tester votre application pour vous assurer qu'il en résultera une amélioration de la performance, examiner s'il serait préférable d'optimiser vos requêtes et d'ajouter des index au lieu de cela, et être sûr que c'est ok si vos données disparaît.