我正在处理分层数据,就像在树结构中一样.我想知道将它们存储在数据库中的最佳方法是什么.
我从MySQL的邻接列表开始.但随着数据的增加,性能似乎有所下降.我有大约20,000行存储在具有父子关系的MySQL表中,并且将来会增加.获取数据需要很长时间,因为我必须根据树的深度编写许多自连接.
所以我一直在寻找存储这类数据的最佳方法.在同一个地方,我发现嵌套集比邻接列表更好.然后我被建议查看NoSQL,如果这可以解决我的问题.所以我现在很困惑是继续使用SQL还是进入No SQL,或者是否有其他最好的方法来处理这种数据.
所以任何人都可以建议我最好的方法是什么?
解决方法:
如果MySQL给你带来的麻烦比它解决的更多,我会看看MongoDB,CouchDB或ElasticSearch(取决于你的用例).甚至可能是Neo4j.您的选择应该归结为几个点,例如复制,扩展能力,一致性……我建议您在决定之前仔细阅读一些官方文档.这是一个starting point比较.
去NoSQL将摆脱所有连接并提高性能但是你仍然需要使用邻接列表,嵌套集,物化路径等来实现适当的层次结构……
请记住,NoSQL技术几乎都使用最终的一致性,这实际上意味着您的数据在某些节点的给定时间可能不一致.如果这是一个问题,你应该坚持使用RDBMS.
原文地址:https://codeday.me/bug/20190624/1278837.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。