在阅读了我的另一个问题,使用关系数据库获得无架构数据之后,我开始怀疑文件系统是否比关系数据库更适合存储和查询无模式数据.
而不是仅仅在MySQL之上构建文件系统,为什么不直接将数据保存到文件系统?需要弄清楚索引,但现代文件系统非常稳定,具有复制,快照和备份功能等强大功能,并且可以灵活地存储无模式数据.
但是,我找不到任何使用文件系统而不是数据库的人的例子.
在哪里可以找到有关如何将无模式(或"面向文档")数据库实现为文件系统顶层的更多资源?是否有人使用现代文件系统作为无模式数据库?
是的,文件系统可以作为类似NOSQL的数据库系统的特例.在任何设计决策中都可能会考虑一些限制:
优点: - 简单,直观.
利用多年的调优和缓存算法
易于备份,可能很容易集群
要考虑的事情:
丰富的元数据 - 它存储了哪些类型的数据,如何让它们查询它们,你是否可以使用分层或多值属性
查询元数据的速度 - 并非所有的fs都能通过大小,日期以外的任何其他方式进行特别优化.
无法加入查询(虽然这对NoSQL来说很常见)
低效的存储使用率(除非文件系统执行块子分配,否则无论大小如何,每个项目通常会烧掉4-16K)
可能没有你想要的那种缓存算法的目录结构
往往不太可调,等等.
备份解决方案可能会遇到麻烦,具体取决于您存储的方式 - 太深,每个节点的项目太多等 - 这可能会避免这种结构的明显优势.锁定LOCAL文件系统当然可以正常工作,如果你调用正确的例程,但不一定是网络基础文件系统(这些问题已经以各种方式解决,但它肯定是一个设计问题)