我正在尝试为某个项目选择一个数据库,这个数据库有点不寻常,因为信息可能会随着它的发布而被删除。
我对关系数据库和NoSQL数据库有一点了解,并且几年前涉及到图形数据库Neo4J。我很难找到MongoDB和Neo4J如何处理删除信息。
我有一个模糊的想法,即SQL数据库只标记要删除的记录,然后需要维护运行才能真正删除它们,但我不确定这是否正确。
我已经阅读了几个在线专业人士和有关基于数据类型和数据访问方式选择数据库的基础知识的文章 - 关系与图形,MongoDB与Neo4J等。但我没有找到任何比较不同的数据库和数据库类型如何处理删除信息。
我担心的是,我最终会得到一个数据库,其数据只是标记为删除,直到数据库维护命令运行或数据库中已经删除的信息残留,即使在维护之后也是如此。
我不希望这样。
我希望立即删除用户删除的信息,就像我希望立即在db中创建用户添加的信息一样。
理论上,用户删除可以快速来回动作吞噬用户添加。回到MongoDB,我在其在线手册中读到“删除操作不会删除索引,即使从集合中删除所有文档” - 虽然我不明白这意味着什么,但这让我很担心! (听起来即使在删除信息后也总会有一些残余物。)