Java SQLite、Derby与文件系统

Java SQLite、Derby与文件系统,java,sqlite,filesystems,derby,Java,Sqlite,Filesystems,Derby,我正在开发一个Java桌面应用程序,它可以读取和写入不同的文件。我认为更好的解决方案是用SQLite数据库替换文件系统。 迁移到此系统并在我的应用程序中嵌入数据库有多难?是否有真正的绩效提升? 非常感谢我不认为仅仅通过将数据存储更改为SQLite就可以获得性能。如果需要,您应该将基于FS的存储迁移到关系SQL数据库存储 你需要原子操作你的应用程序随时可能崩溃,你不必担心数据损坏 您需要异步操作应用程序的多个实例可以同时修改数据,而不会损坏数据/获得无效状态。 你需要数据规范化产品-m2m->目录

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

我不认为仅仅通过将数据存储更改为SQLite就可以获得性能。如果需要,您应该将基于FS的存储迁移到关系SQL数据库存储

你需要原子操作你的应用程序随时可能崩溃,你不必担心数据损坏 您需要异步操作应用程序的多个实例可以同时修改数据,而不会损坏数据/获得无效状态。 你需要数据规范化产品-m2m->目录 自动索引—如果文件系统速度不够快,则需要快速搜索功能 您需要抽象复杂的数据操作。-i、 e.选择价格<10的SUMPrice等 这些是您通过切换到SQLite获得的一些收益


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

我不认为您仅仅通过将数据存储更改为SQLite就能获得性能。如果需要,您应该将基于FS的存储迁移到关系SQL数据库存储

你需要原子操作你的应用程序随时可能崩溃,你不必担心数据损坏 您需要异步操作应用程序的多个实例可以同时修改数据,而不会损坏数据/获得无效状态。 你需要数据规范化产品-m2m->目录 自动索引—如果文件系统速度不够快,则需要快速搜索功能 您需要抽象复杂的数据操作。-i、 e.选择价格<10的SUMPrice等 这些是您通过切换到SQLite获得的一些收益


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

我认为您不会在任何标准桌面上获得显著的性能提升-只要您的应用程序除了折磨文件系统之外什么都不做对于读和写:最后,性能主要取决于代码


如果你考虑切换到SQLite,你可能想看看。我自己没有使用过它,但我认为部署它应该类似于Derby:您所需要的只是向应用程序中添加一些JAR,然后就可以解决问题了。我会尽量避免使用外部SQLite或任何其他对外部应用程序的依赖,因为这会使应用程序的设置变得相当复杂。

我认为,在任何标准桌面上,您都不会获得显著的性能提升-只要您的应用程序除了通过读写操作折磨文件系统之外什么都不做:最后,性能主要取决于代码


如果你考虑切换到SQLite,你可能想看看。我自己没有使用过它,但我认为部署它应该类似于Derby:您所需要的只是向应用程序中添加一些JAR,然后就可以解决问题了。我会尽量避免使用外部SQLite或任何其他对外部应用程序的依赖,因为这会使应用程序的设置变得相当复杂。

在Java桌面应用程序中嵌入Derby非常简单。您只需将Derby jar添加到应用程序中,决定将数据存储在磁盘上的位置,并编写标准SQL和JDBC调用来调用Derby操作。编写良好的Derby应用程序可以提供极高的性能,但必须注意模式和事务设计。Derby有很好的工具来分析和解决性能问题。

在Java桌面应用程序中嵌入Derby非常简单。您只需将Derby jar添加到应用程序中,决定将数据存储在磁盘上的位置,并编写标准SQL和JDBC调用来调用Derby操作。编写良好的Derby应用程序可以提供极高的性能,但必须注意模式和事务设计。Derby有很好的工具来分析和解决性能问题。

如果没有更多关于您所做工作的细节,很难说这有多困难以及您可能获得什么。拥有一个使用文件存储配置的应用程序和构建一个将所有照片作为文件的整个相册应用程序之间有很大的区别。如果没有更多关于您所做工作的细节,很难说这有多困难以及您可能获得什么。让一个应用程序使用文件存储配置和构建一个完整的相册应用程序(将所有照片作为文件)之间有很大的区别。