树形结构数据,指定节点的子节点个数问题
最近遇到一个关于树形结构数据的查询问题,希望有大牛指点迷津:
背景:最近接手一个项目,里面含有会员推荐功能,随着用户的增加,发展成了一个属性的庞大数据。现在需要针对每个用户查找其发展用户的个数计算,但是由于数据量庞大,每次进行父节点寻址,递归查询,程序就超时无响应,服务器配置2G内存就跑到98%,然后无法计算出结果。
条件:a. 树形结构如下图
b.每个父节点的子节点个数不定,可以任意数目 c.数据表有一个pid来指定其父节点的ID
求有相关经验的大牛前来指点~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
以下纯属瞎诌
每个父节点里记录一下子节点个数不行吗。。
插入的时候顺便更新。。
数据量具体是什么数量级的?如果数据量不是特别大按理来说应该不需要消耗这么大资源,递归可以考虑优化,存取中间结果释放内存,改成非递归。
兄弟我也遇到这样的问题了,你们解决了吗?
请看这个应该是你要的:http://drinkjava2.iteye.com/b... 或 https://github.com/drinkjava2... 只需要额外两个列,一个列存储行号,一个列存储深度值,并在结尾加一个结束标记,即可方便地利用SQL进行快速查询、删除、插入,无需递归。
看看这个吧https://blog.csdn.net/wei3499...
Drinkjava2老哥说的 新增一个用户 根据算法算出前序遍历顺序 就得更新整个表的line 对于用户推荐关系设计没多大用处