2010-04-08 8 views
9

Ich entwerfe eine iPad/iPhone App mit Kerndaten. Der Hauptfokus der App ist das Sortieren und Anzeigen von bis zu 20.000 PDF-Dateien. Sie sind ~ 200 KB pro Stück. Normalerweise ist es am besten, BLOBS nicht in einer DB zu speichern, aber für Desktop-Systeme habe ich normalerweise gesehen, dass, wenn die Blobs < 1 MB sind, es in Ordnung ist, die DB zu verwenden. Irgendwelche Überlegungen, die ich berücksichtigen sollte? Wenn ich sie im Dateisystem abspeichere, kann ich sie alle in einem Verzeichnis speichern und habe keine Performance-Probleme (ich brauche keine Verzeichnisliste, da ich den Pfad jedes Pfades in der Datenbank speichern würde). Sollte ich sie in eine Handvoll Verzeichnisse aufteilen? Wenn ja, gibt es eine gute Regel für die Anzahl der Dateien pro Verzeichnis?Core Data iPad/iPhone BLOBS vs Dateisystem für 20k PDFs

Antwort

9

Ich würde für Pfade innerhalb Ihrer Datenbank gehen. Es ist schneller, durch Nachschlagen und aus Backup-Gründen. Ich benutze persönlich einen relativen Pfad zu einem Verzeichnis, so dass ich den Ordner "root" im Falle einer Systemmigration oder eines Lastausgleichs ändern kann. Sie können sie in einem einzigen Verzeichnis speichern, denn wenn Sie sie von Ihrer Datenbank aus durchsuchen, geschieht dies nach einer eindeutigen ID (wenn Ihr Schema auf diese Weise erstellt wurde).

Sie können problemlos 1 MB BLOB in SQLite (auch andere Datenbanken) speichern. Ich kann es nur nicht empfehlen.

+2

Core Data (im Allgemeinen) verwendet SQLite als Backend, nicht MySQL. –

+2

Ausgezeichneter Punkt. Ich hatte Backup vergessen. Die Datenbankdaten müssen gesichert werden, die PDFs jedoch nicht, da die App sie bei Bedarf immer erneut herunterladen kann. – jamone