树形结构数据,指定节点的子节点个数问题

发布于 2022-09-01 21:29:41 字数 448 浏览 7 评论 0

最近遇到一个关于树形结构数据的查询问题,希望有大牛指点迷津:

  1. 背景:最近接手一个项目,里面含有会员推荐功能,随着用户的增加,发展成了一个属性的庞大数据。现在需要针对每个用户查找其发展用户的个数计算,但是由于数据量庞大,每次进行父节点寻址,递归查询,程序就超时无响应,服务器配置2G内存就跑到98%,然后无法计算出结果。

  2. 条件:a. 树形结构如下图

        b.每个父节点的子节点个数不定,可以任意数目
        c.数据表有一个pid来指定其父节点的ID
    

树形结构

求有相关经验的大牛前来指点~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

盗琴音 2022-09-08 21:29:41

以下纯属瞎诌

每个父节点里记录一下子节点个数不行吗。。
插入的时候顺便更新。。

染火枫林 2022-09-08 21:29:41

数据量具体是什么数量级的?如果数据量不是特别大按理来说应该不需要消耗这么大资源,递归可以考虑优化,存取中间结果释放内存,改成非递归。

盗琴音 2022-09-08 21:29:41

兄弟我也遇到这样的问题了,你们解决了吗?

云朵有点甜 2022-09-08 21:29:41

请看这个应该是你要的:http://drinkjava2.iteye.com/b...https://github.com/drinkjava2... 只需要额外两个列,一个列存储行号,一个列存储深度值,并在结尾加一个结束标记,即可方便地利用SQL进行快速查询、删除、插入,无需递归。

ゝ偶尔ゞ 2022-09-08 21:29:41

看看这个吧https://blog.csdn.net/wei3499...
Drinkjava2老哥说的 新增一个用户 根据算法算出前序遍历顺序 就得更新整个表的line 对于用户推荐关系设计没多大用处

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文