Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Core Data iPad/iPhone BLOBS vs File system for 20k PDFs

I'm designing an iPad/iPhone app using core data. The main focus of the app is sorting and viewing up to 20,000 PDFs They are ~200KB each. Typically its best to not store BLOBS in a DB, but for desktop systems I've typically seen it said that if the blobs are < 1 MB then its fine to use the DB. Any considerations I should take into count? If I store them in the file system can I store them all in one directory and not have performance issues (I won't need to ever get a directory list since I'd store each's path in the DB)? Should I divide them among a handful of directories? If so is there a good rule on # of files per dir?

like image 559
jamone Avatar asked Apr 08 '10 00:04

jamone


1 Answers

I would go for paths inside your database. It's faster, by lookup and for backup reasons. I personally use a relative path to a directory, so I can change the "root" folder in case of system migration or load balancing. You can store them in a single directory, because when you are looking them up from your database, it's by unique id (if your schema is designed that way).

You can store easily 1 meg BLOB's inside SQLite (other databases too). Just wouldn't recommend it.

like image 181
Shyam Avatar answered Oct 15 '22 13:10

Shyam