什么需要更多空间:保存在数据库中或保存在空文件中?

时间:2016-04-07 13:13:18

标签: android file database-performance conceptual

我制作了一个Android应用程序来读取互联网上的卡通条。这是学习如何为Android编码的基本项目。

它在数据库中保存非常简单的数据:

Date (as string)|IsFavorite (as boolean)|Seen (as boolean)

当我第一次构建应用程序时,我使用了StackOverflow和其他Android论坛中的许多可重用代码。它基本上使用辅助类来控制单个as suggested here和其他许多地方的数据库访问。

我不是Singletons的粉丝......我开始怀疑使用DB是否真的是在DB中写入如此简单数据的最佳解决方案:

  • 在数据库
  • 中插入的项目之间没有关系信息
  • 检查是否有条带是检查文件系统中是否创建了一个文件(空)(在FS中保留一个空文件)。
  • 没有要遵循的结构
  • 不需要可扩展性

所以,这是我的问题:

  1. 如果我在FS中留下一个空文件而不是在DB中写入一个条目,那么它会占用更多空间吗?
  2. 如果是的话,它的空间是否可以忽略不计?或者它会在FS中引起巨大冲击?
  3. 我在这里谈论的是11000个文件。

1 个答案:

答案 0 :(得分:0)

在数据库帮助中使用单例是" Android方式"做事情,所以不会有任何问题。

包含一个字符加上其他文件的11,000个文件&构成应用程序本身的资产可能会让你超过100 MB file size limit。即使情况并非如此,我认为你提出了错误的问题。而不是关注哪个占用更少的空间,你应该考虑哪个更高性能

数据库将比使用文件系统更快地执行 。只有几个原因...

  1. CRUD操作可以批量执行,而不是一次执行一次(即,使用单个查询一次更新100个条目,而不是像文件系统一样一次更新一个文件
  2. 每个CRUD操作本身将花费更少的时间,因为它不必等待文件系统打开和关闭文件。
  3. 数据库中保留的空白空间将远远少于单独存储的文件,特别是对于您在每个文件中存储的少量数据。
  4. 数据库不必像文件系统本身一样处理碎片文件。