2010-09-09 8 views
2

Je cherche à stocker beaucoup de nombre comme Int16. Considérant les données de base car le reste des modèles est implémenté dans les données de base.Taille de fichier de données de base

J'ai donc fait une application simple. Données de base avec 1 entité et 1 attribut du type Int16. Inséré 1 million d'entrées dans le type de stockage SQLite et la taille du fichier est de 16,2 Mo. En fait, si je change à Int64, j'obtiendrais la même taille de fichier. Si vous écrivez simple tableau C binaire, devrait être d'environ 2 Mo. Donc, la question est de savoir pourquoi les données Core se sont-elles embêtées avec autant de formats de nombres différents si tout va être casté dans NSNumber de toute façon? Et est-il possible de rendre les données de base stocker les données comme vrai Int16? ou short en termes de C?

Merci.

+0

Gardez à l'esprit les données de base stockent plus que les nombres bruts. Il doit maintenir le reste de la structure de la base de données autour d'eux. –

Répondre

4

Le fait que les données de base prennent en charge tous ces formats de nombres ne signifie pas que le moteur de stockage sous-jacent doit les stocker différemment. Si vous avez essayé d'utiliser le magasin binaire, vous obtiendrez probablement des tailles de fichier différentes.

Pour stocker autant de nombres entiers je les mettrais tous dans un objet NSData et les stockerais dans les données de base.

+0

C'est une bonne idée! Maintenant, le fichier de données est seulement de 2,1 Mo. Seulement 100 Ko de frais généraux, ça vaut le coup pour la commodité. – Dan

Questions connexes