java - SQLite , Derby 与文件系统

标签 java sqlite filesystems derby

我正在开发一个 Java 桌面应用程序,它可以读取和写入不同的文件。我认为更好的解决方案是用 SQLite 数据库替换文件系统。 迁移到这个系统并在我的应用程序中嵌入数据库有多难?有真正的性能提升吗? 非常感谢

最佳答案

我认为仅仅将数据存储更改为 SQLite 不会获得性能。在以下情况下,您应该将基于 FS 的存储迁移到关系 (SQL) 数据库存储。

  • 您需要原子操作。 - 您的应用随时可能崩溃,您不必担心数据损坏)
  • 您需要异步操作。 - 您的应用程序的多个实例可以同时修改数据而不会损坏数据/获得无效状态。
  • 您需要数据规范化。 - 产品 -m2m-> 目录
  • 自动索引 - 如果您需要快速搜索功能(如果您的文件系统不够快)
  • 您需要复杂数据操作的抽象。 - 即 SELECT SUM(Price) WHERE Price < 10 等

这些是您切换到 SQLite 后获得的一些 yield 。

如果您还正确地利用了关系存储的上述一个或多个属性,而您使用基于文件的系统则没有这些属性,那么您可以从 SQLite 中获得性能提升。

关于java - SQLite , Derby 与文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1679349/

相关文章:

c - 存储子目录的引用

php - rename() 和 unlink() 是异步函数吗?

java - 实体间的优化关系

java - Try and Catch 用于简单的计算器输入

iphone - SQLite "SQLITE MISUSE"错误

sql - 加入有限子查询?

MySQL 数据库规范化

ios - 向 "Library/Application support"文件夹提供默认填充

java - 关于使用Apache ant的两个问题

java - AsyncTask #2 java.lang.RuntimeException