mysql – 以最佳方式存储分层数据:NoSQL或SQL

我正在处理分层数据,就像在树结构中一样.我想知道将它们存储在数据库中的最佳方法是什么.

我从MySQL的邻接列表开始.但随着数据的增加,性能似乎有所下降.我有大约20,000行存储在具有父子关系的MySQL表中,并且将来会增加.获取数据需要很长时间,因为我必须根据树的深度编写许多自连接.

所以我一直在寻找存储这类数据的最佳方法.在同一个地方,我发现嵌套集比邻接列表更好.然后我被建议查看NoSQL,如果这可以解决我的问题.所以我现在很困惑是继续使用SQL还是进入No SQL,或者是否有其他最好的方法来处理这种数据.

所以任何人都可以建议我最好的方法是什么?

解决方法:

如果MySQL给你带来的麻烦比它解决的更多,我会看看MongoDB,CouchDB或ElasticSearch(取决于你的用例).甚至可能是Neo4j.您的选择应该归结为几个点,例如复制,扩展能力,一致性……我建议您在决定之前仔细阅读一些官方文档.这是一个starting point比较.

去NoSQL将摆脱所有连接并提高性能但是你仍然需要使用邻接列表,嵌套集,物化路径等来实现适当的层次结构……

请记住,NoSQL技术几乎都使用最终的一致性,这实际上意味着您的数据在某些节点的给定时间可能不一致.如果这是一个问题,你应该坚持使用RDBMS.

相关文章

校园网上订餐系统系统主要功能模块包括公告内容(公告栏、轮...
从今天开始,正式进入项目阶段。本次的项目是跟着黑马的瑞吉...
在可预见的将来,IT不会萎缩,只会越发展越庞大,最终会渗透...
vulntarget-b靶场最详细通关记录。
MongoDB是一个开源、高性能、支持海量数据存储的。
【NoSQL数据库技术与应用】课本代码、课后答案(持续更新)