我正在使用核心数据设计一个iPad / iPhone应用程序。该应用程序的主要焦点是排序和查看多达20,000个PDF,每个约200KB。通常最好不要将BLOBS存储在数据库中,但对于桌面系统,我通常会看到它说如果blob是< 1 MB然后罚款使用DB。我应该考虑的任何考虑因素?如果我将它们存储在文件系统中,我可以将它们全部存储在一个目录中而不会出现性能问题(因为我将每个路径存储在数据库中,所以我不需要获取目录列表)?我应该将它们分成几个目录吗?如果是这样,每个目录的文件数量是否有一个好的规则?
答案 0 :(得分:9)
我会选择数据库中的路径。通过查找和备份原因,它更快。我个人使用目录的相对路径,因此我可以在系统迁移或负载平衡的情况下更改“root”文件夹。您可以将它们存储在一个目录中,因为当您从数据库中查找它们时,它是由唯一ID(如果您的模式是这样设计的)。
您可以在SQLite(其他数据库)中轻松存储1 meg BLOB。只是不推荐它。