Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用SQLite而不是文件有什么好处?_Android_Sqlite - Fatal编程技术网

Android 使用SQLite而不是文件有什么好处?

Android 使用SQLite而不是文件有什么好处?,android,sqlite,Android,Sqlite,在Android中,在SQLite中输入数据比在.txt文件中使用更多的时间和更多的代码行 以.txt格式保存数据并使用FileReader可以方便地获取数据 使用SQLite而不是文件的优点是什么?我们会立即想到SQLite提供给您而简单文件没有提供的主要原因: 标准API:SQL 理论上更好的性能(比如说) 没有车轮再造 及 请注意,尝试自己使用平面文件来解决这些问题将开始进入数据库领域——当然,您真的不想自己编写这种东西 SQLite数据库相对于文件存储的优势 如果您有相关的数据块

在Android中,在SQLite中输入数据比在.txt文件中使用更多的时间和更多的代码行

以.txt格式保存数据并使用FileReader可以方便地获取数据


使用SQLite而不是文件的优点是什么?

我们会立即想到SQLite提供给您而简单文件没有提供的主要原因:

  • 标准API:SQL
  • 理论上更好的性能(比如说)
  • 没有车轮再造
请注意,尝试自己使用平面文件来解决这些问题将开始进入数据库领域——当然,您真的不想自己编写这种东西

SQLite数据库相对于文件存储的优势
  • 如果您有相关的数据块,常规文件不允许您指出它们之间的关系;SQLite数据库可以
  • SQLite允许您以结构化的方式存储数据
  • SQLite具有更高的性能
  • 还可以查询SQLite数据库,数据检索更加健壮
  • android.database和android.database.sqlite包提供了一种更高性能的替代方案,其中源代码兼容性不是问题
  • 在Android中创建的Android数据库仅对创建它们的应用程序可见
  • 没有文件解析和生成代码来编写和调试
  • 可以使用功能强大的SQL查询访问和更新内容,从而大大降低了应用程序代码的复杂性
  • 在以后的版本中扩展新功能的文件格式非常简单,只需向现有表添加新表或新列即可
  • 不同的内容可能以“文件堆”的形式存储,可以封装到单个磁盘文件中
  • 可以使用第三方工具查看内容
  • 应用程序文件可移植到所有操作系统、32位和64位以及大端和小端体系结构
  • 应用程序只需加载所需的数据,而不是读取整个应用程序文件并在内存中保存完整的解析。减少了启动时间和内存消耗
  • 小的编辑只覆盖更改的文件部分,而不是整个文件,从而提高性能并减少SSD驱动器的磨损
  • 内容会不断进行原子更新,以便在发生电源故障或崩溃时不会丢失任何工作
  • 应用程序可以利用SQLite内置的全文搜索和RTREE功能
  • 性能问题通常可以通过创建索引来解决,而不是重新设计、重写和重新测试应用程序代码
  • 可能用不同编程语言编写的程序联合体都可以访问相同的应用程序文件,而无需考虑兼容性问题
  • 多个进程可以附加到同一个应用程序文件,并且可以在互不干扰的情况下进行读写
  • 跨会话撤消/重做可以使用触发器实现
  • 在许多常见情况下,从SQLite数据库加载内容比从单个文件加载内容要快。有关更多信息,请参见内部blob与外部blob
  • 存储在SQLite数据库中的内容更有可能在未来几十年内恢复,而在原始应用程序的所有痕迹丢失很久之后。数据的寿命比代码长
在Sql中我最喜欢的是光标的使用。我可以直接转到任何表行,而不必关心表的其他内容。这是文件中无法做到的。Sql中的数据也可以相互关联。对于简单和小型项目,它不会产生多大影响。但是对于复杂的实时项目,您需要DBMS的所有功能,您需要ACID规则来处理实时问题,因此您需要几乎自动处理所有这些问题的SQLite。SQLite运行速度比存储到文件快的原因是什么?我昨天运行了一些基准测试,发现了6倍的差异是的,查看这篇文章。SQLite很好地利用了数据结构,如B-tree和缓存等,使得它的写入和读取操作更快。