我正在开发一个基于 Java 的备份客户端,它扫描文件系统上的文件并使用它找到要备份的目录和文件名填充 Sqlite 数据库。使用 neo4j 代替 sqlite 有意义吗?它会更高效,更容易用于此应用程序吗?我在想,因为文件系统是一棵树(如果考虑符号链接,则为图形),gaph 数据库可能合适吗?sqlite 数据库模式只定义了 2 个表,一个用于目录(完整路径和其他信息),一个用于文件(仅名称与包含目录表中目录的外键),因此它相对简单。
应用程序需要索引数百万个文件,因此解决方案需要快速。
我正在开发一个基于 Java 的备份客户端,它扫描文件系统上的文件并使用它找到要备份的目录和文件名填充 Sqlite 数据库。使用 neo4j 代替 sqlite 有意义吗?它会更高效,更容易用于此应用程序吗?我在想,因为文件系统是一棵树(如果考虑符号链接,则为图形),gaph 数据库可能合适吗?sqlite 数据库模式只定义了 2 个表,一个用于目录(完整路径和其他信息),一个用于文件(仅名称与包含目录表中目录的外键),因此它相对简单。
应用程序需要索引数百万个文件,因此解决方案需要快速。
只要您可以在存储的文件系统路径上使用字符串匹配来执行数据库操作,使用关系数据库就很有意义。当数据模型变得更加复杂并且您实际上无法使用字符串匹配进行查询但需要遍历图形时,使用图形数据库将使这变得更加容易。
据我了解,Neo4j 最早的用途之一就是作为 CMS 系统 Neo4j 的一部分。
Neo4j 的索引后端 Lucene 将允许您构建您可能需要的任何索引。
您应该阅读并直接询问他们。
我正在考虑使用类似的解决方案来索引文件系统上的数据存储。关于上述查询的评论是正确的。
最坏情况查询示例:
对于 SQLite:
对于neo4j:
问候,hj