2009-04-04 7 views
1

Je souhaite utiliser SQLite en tant que tableau associatif enregistré sur le disque.Sqlite pour un tableau associatif supporté par disque?

Est-ce une bonne idée? Je suis inquiet d'avoir à analyser SQL chaque fois que je fais quelque chose comme:

base de données [ « someindex »] qui devra se traduire par quelque chose comme

sélectionner la valeur de db où index = « someindex ' qui à son tour devra être traduit dans le langage interne SQL.

+0

Quelle est la taille des valeurs? Sont-ils typés ou juste des ficelles? – jmucchiello

+0

Je prévois d'utiliser des chaînes pour le moment. – Unknown

Répondre

5

Si vous êtes préoccupé par le temps système SQL et avez seulement besoin d'un tableau associatif simple, peut-être un parent dbm comme GDBM ou Berkeley DB serait-il un bon choix?

+0

mais ceux-ci sont gpl – Unknown

+0

Si GPL est un problème, alors peut-être PDB (http://www.mission-base.com/peter/source/) - qui semble être LGPL, même si je n'ai pas utilisé la bibliothèque moi-même . – andri

1

Découvrez les paramètres SQLite pour un moyen facile d'aller < variables -> sql

0

Cela dépend vraiment de votre problème réel. Votre énoncé de problème est très générique et dépend fortement de la taille de votre hashtable.

Pour les petites tables de hachage, vous avez seulement l'intention de lire et d'écrire une fois que vous préférez réellement un fichier texte (pratique pour le débogage).

Si votre Hashtable est, disons, plus petit que 25meg SQLite probablement bien pour vous

1

SQLite devrait être assez rapide comme un disque à base de tableau associatif. N'oubliez pas d'utiliser prepared statements, qui analyse et compile votre SQL une fois pour être invoqué plusieurs fois; ils sont également plus sûrs contre SQL injection attacks. Si vous faites cela, vous devriez obtenir de très bonnes performances de SQLite.

Une autre option, pour un simple tableau associatif basé sur disque, est, bien, le système de fichiers; c'est un tableau associatif basé sur disque assez populaire. Créez un répertoire sur le système de fichiers, utilisez une clé par entrée. Si vous en avez besoin de plus de quelques centaines, créez un répertoire par préfixe à deux caractères de la clé, afin de limiter le nombre de fichiers par répertoire. Si vos clés ne sont pas sécurisées en tant que noms de fichiers, utilisez-les en utilisant SHA-1 ou SHA-256 ou autre chose.

Questions connexes