开发者社区 问答 正文

8级多叉树如何高效数据库内存取?

问题明细

多叉树数据如何在数据库中存放可以高效读取

因为数据层级比较深,且在单一分支上的数据存在同其他数据表关联更新的操作,变动比较大.

目前是这样处理的,通过用户的 code 查询出所有下级节点,然后遍历数据,判断是否为新增节点,用户有多少新增节点?再去根据业务要求去处理。因为要处理所有的数据,经常出现超时的情况,且处理的很慢。

针对这种情况,如何实现高效的读取和修改呢?谢谢!

目前的数据处理如下: 因为数据在本处无法展示,便存放在了有道云笔记 [数据格式]http://note.youdao.com/noteshare?id=6b8fc1ee5236c9833218f47348cebac5&sub=69FCE2762E6D4ECF8D74CC44FFD9AB74)

关于数据中的说明: id 为数据库字段的主键id code 为用户的唯一编号 lorr 表示是否做过操作标识,l 为已操作, r为未操作

parent_id 为上级用户id

all_parent_code 是上七级用户的记录,方便统计一个人的下级用户,超出部分不计入

children 在数据库内是不存在的,为应用程序读取后生成的数据。

在数据库中的形式如下:

idcodelorrparent_idall_parent_code
1s00001l0
2s00002l1s00001
3s00003l1s00001

...

idcodelorrparent_idall_parent_code
21s00021r17s00017-s00016-s00015-s00014-s00013-s00012-s00008
22s00022r14s00014-s00013-s00012-s00008-s00007-s00001
23s00023r10s00010-s00007-s00001

展开
收起
dawns 2020-01-09 13:53:31 781 分享 版权
1 条回答
写回答
取消 提交回答
  • 精于基础,广于工具,熟于业务。

    您有空了可以试一下GDB或者图数据库。这个数据库就是为了解决这种情况诞生的。目前阿里云的GDB正在公测哦

    2020-01-09 14:02:57
    赞同 展开评论