美文网首页
关于树型结构在web项目中的调优的思考

关于树型结构在web项目中的调优的思考

作者: 走码人 | 来源:发表于2023-10-31 23:16 被阅读0次

        具体业务中经常会遇到在前端展示一个树型结构,最常见的就是组织树、功能树等。大型的集团化企业组织树会有些数据量,也会比较深的层级,在性能方面体验会稍微差一点些。

        有问题就会有人去想解决方案,影响性能的因素有很多,网络环境、服务器配置这些一般不在程序员的控制范围,程序员可以进行干预的有以下几个方面:

    * 库表结构

      一般的树型表结构都很简单,有一个PID和ID进行关联即可。像Oracle有简单专门的语法命令支持递归查询,MySQL也支持递归查询虽然递归的写法比较复杂。

        递归的特点是简单,性能差一些。于是又有人相当了拿空间换时间,给树型表冗余一个path字段,记录每个节点的全路径,查询时通过正则或者like来获取指定的节点及其子结点,性能也会有所提升。

    * 算法

        后端的算法一般要配合前端需求进行调整,例如前端有以下几种调优的方式:

        1-懒加载,每次只加载一个层级上的数据,点击节点后再次加载下一级节点,动态按需请求服务端数据。

        2-按可视区加载,监控滚轮时间,按窗口的显示区域动态进行加载。算法复杂度较大,一般会有第三方组件可以借力。

    * 缓存

        缓存的优点是可以减少访问后端或者数据库的次数,避免不必要的重复交互。缺点是一般是缓存变化频率很低的数据,频繁修改的数据不适合缓存。前后端缓存技术都很成熟,视具体的业务进行选择实现。

    * 产品设计

        转换另外的设计方案,尽量避免出现海量数据的树型表结构。

    ---

        交流沟通很重要,能够引导用户换一种效果展示,是最好的结局方案!千万不要为了迎合用户将不算技术问题的问题变成技术问题。

    相关文章

      网友评论

          本文标题:关于树型结构在web项目中的调优的思考

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