我正在开发一个 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/