J'ai une base de données sqlite utilisée pour stocker des informations sur les jobs de sauvegarde. À chaque exécution, il augmente d'environ 25 Mo en ajoutant environ 32 000 entrées à une table particulière.Effet de clé primaire sur les performances dans SQLite
Cette table est une "table de mappage" utilisée pour lier certaines informations aux enregistrements d'une autre table ... et elle contient une clé primaire (autoincrement int) que je n'utilise pas. Sqlite réserve 1, 2, 4 ou 8 octets pour la colonne INT en fonction de sa valeur. Cette table n'a que 3 colonnes supplémentaires, également de type INT.
J'ai ajouté des index à la base de données sur les colonnes que j'utilise comme filtres (WHERE) dans mes requêtes.
En présence d'index, etc. et dans le cas décrit, les clés primaires ont-elles un avantage utile en termes de performances?
Note: Les performances sont très, très importantes pour ce projet - mais pas si 10ms sauvegardés sur un travail de 32.000 entrées signifie 10MB de données supplémentaires!
Je suis plutôt d'accord avec ça. L'idée importante est de garder la base de données en mémoire, et si les index sont trop volumineux, cela peut avoir de l'importance. – Unknown
@Unknown: pour une base de données de mise en cache de mémoire sauvegardée sur un disque, les index inutilisés ne doivent pas entrer dans la mémoire, et s'ils le sont, ils seront expulsés assez rapidement. Mais oui, si vous construisiez une base de données en mémoire complète sans stockage de disque de sauvegarde, ces index vous blesseront probablement. – Thilo