gpt4 book ai didi

php - 递归项状态性能

转载 作者:行者123 更新时间:2023-11-30 21:40:10 26 4
gpt4 key购买 nike

几天来我一直在思考这个问题,我似乎无法弄清楚最佳做法是什么,所以希望你们中的一个人能够引导我走上正确的道路.

数据

假设我们有一个元数据表、一个项目数据表和一个到期日期表。

  • 项目
  • 到期

元定义了项目集合并保存该集合的一般信息,并且在元上设置了特定标准,这些标准在整个项目布局中使用。

一个项目是元的派生,并保存特定于该 ONE 项目的唯一数据,并且通常需要元信息。 (注意:一个项目也可以是其他项目的集合)

有效期是不言自明的,是单个项目的有效期。

当前实现

如果您输入任何给定元的元页面,它将在分页的 ajax 调用中加载项目,并且对于每个加载的项目,它将加载一个状态图标。每次显示时都会生成此状态图标,并且它是递归的(这意味着如果我要在元上放置一个状态图标,那么它将加载该元的所有项目并检查它的所有到期日期和所以第四个。)

通过扩展实现,它目前对数据库执行 600 次调用(5.56 秒)(这是一个相当大的负载,但根据数据库布局是必要的。)

我的理论

我认为对于最终用户来说,将状态值简单地与每个元素一起存储在数据库中会显示出更好的结果,但是我不知道这是否是正确的做事方式 - 考虑到我会每次频谱中的元素发生变化时递归调整此状态图标(包括设置服务器作业以根据到期日期更新状态)

问题

状态图标的最佳实践是什么,它是递归的并且有许多因素和关系需要跟踪?

最佳答案

最佳做法是缓存状态图标并仅从缓存中为最终用户读取它。您所有的负载繁重的东西(递归数据库调用魔术)都将投入工作。最后,您为所有模型创建观察者,这些观察者将排队此作业以更新已更改项目的缓存值。

通过这种方式,您可以将负载繁重的工作分开,由您的服务器端和客户端的工作人员处理,一切都将快速顺利。处理状态图标更新后,您的最终用户将看到更改。

关于php - 递归项状态性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52034386/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com