Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Database 在持久化中存储文件系统层次结构信息_Database_Sqlite_Filesystems_Persistence_Hierarchy - Fatal编程技术网

Database 在持久化中存储文件系统层次结构信息

Database 在持久化中存储文件系统层次结构信息,database,sqlite,filesystems,persistence,hierarchy,Database,Sqlite,Filesystems,Persistence,Hierarchy,我希望我的程序(用Python编写)能够监视给定文件系统的层次结构,将其记录到持久数据存储中,并能够在文件系统发生更改时进行更新。它可能会被读入易失性存储器以便快速访问 我发现了一些帖子,建议“与Python一起使用的最佳持久存储方法”,还有另一篇帖子回答了“如何在关系数据库中表示文件系统” 从上面的链接可以看出,SQLite是一个很好的持久化选择,因为它速度快。然而,对于使用数据库来存储和表示文件系统层次结构有多好,我没有多少意见 我对所实施方法的考虑如下: 性能/速度 可伸缩性:我需要监视

我希望我的程序(用Python编写)能够监视给定文件系统的层次结构,将其记录到持久数据存储中,并能够在文件系统发生更改时进行更新。它可能会被读入易失性存储器以便快速访问

我发现了一些帖子,建议“与Python一起使用的最佳持久存储方法”,还有另一篇帖子回答了“如何在关系数据库中表示文件系统”

从上面的链接可以看出,SQLite是一个很好的持久化选择,因为它速度快。然而,对于使用数据库来存储和表示文件系统层次结构有多好,我没有多少意见

我对所实施方法的考虑如下:

  • 性能/速度
  • 可伸缩性:我需要监视和更新可能多达数十万个文件的层次结构
  • 易用性:当我将文件系统层次结构读入内存时
  • 还有其他建议吗

使用RDBMS来表示文件系统层次结构是一个好主意吗?这种方法的优点和缺点是什么?您还有其他建议的方法吗?这些方法的优点和缺点是什么?

我将把这些抛在脑后,看看图形数据库。在我看来,现在有三种类型的数据库:关系数据库、文档数据库、图形数据库。(我想你可以输入key/value)通过一个图形数据库,它被设计用来存储关系——文件出现在树结构中。也可能使查询更自然。想到如何将文件系统强制转换为关系数据库,我感到很难过。如果您真的关心性能,了解您计划在文件系统结构上执行的操作是至关重要的,这将决定您的设计约束——选择数据存储是选择正确的数据结构的第二步。旁注:如果您不能100%确定(因为您在实时系统上进行了测量)如果这是应用程序的瓶颈,那么您可能应该首先尝试直接使用文件系统——在不知道要做什么的情况下,这听起来像是过早的优化,复制文件系统结构会给您的设计增加很多不必要的复杂性(因为您必须使两个副本保持同步)。