美文网首页
矩阵账户—多叉树结构如何优化查询性能

矩阵账户—多叉树结构如何优化查询性能

作者: 小胖学编程 | 来源:发表于2024-07-07 15:55 被阅读0次

    背景

    在一些复杂的业务场景中,需要维护多级账户矩阵的关系。即多层级的母子账户关系。此时如果账户A1登录后,他需要查询到它下面所有的子账户列表。此时应该如何去做。

    账户矩阵关系.png

    假设表结构中,每一条记录均存储parentId的字段,那么通过递归查询,那么就可以将全部的数据都查询出来。

    如果n层矩阵的话,大约要递归查询n次

    select * from tableA where parentId in ()

    思路

    我们可以在表中维护一个字段 parent_id_path,这个字段的目的就是维护目录关系:例如C1的记录维护的是A1,B1,C1,B1维护的是A1,B1,A1维护的是A1

    如果查询A1的所有子账户,那么查询语句变成了

    select * from tableA where parentId like 'A1,%'

    通过like查询的特性,快速将所有命中条件的子账户都查询出来。

    缺点:因为每一层均维护了目录树的链路,当矩阵发生替换后,发生替换的每一层节点都需要做出变更。

    相关文章

      网友评论

          本文标题:矩阵账户—多叉树结构如何优化查询性能

          本文链接:https://www.haomeiwen.com/subject/gazncjtx.html