【问题标题】:is storing frequently used data in json in mysql worth it?在 mysql 中以 json 格式存储常用数据值得吗?
【发布时间】:2021-04-19 03:55:23
【问题描述】:

在 vue.js 应用程序中,主要关注点是与潜在客户合作。潜在客户有很多东西,比如联系人、列表和六个其他对象/表格。

他们也有互动,每个潜在客户可能有 30 次或更多,而电子邮件或电话等大多数事情都会有 1-3 个结果。我一次将 50 个潜在客户加载到前端

我正在尝试决定是否将其全部加载到前端以一次处理 50 个潜在客户是一个好主意,或者我是否应该有一个包含交互的 json 列作为潜在客户表的一部分,我将更新每个保存交互的时间,包含最少的信息,如日期、类型、主题...

在每次交互时更新 json 列似乎是一个额外的步骤(和重复的数据,这有多重要?),但似乎也可以节省查找和加载数据的时间

我不是程序员,但一直在自学如何通过教程和 youtube 为我的业务做一些我需要做的事情,任何专业处理此问题的人的意见将不胜感激

另外,如果有人想告诉我如何以更好的格式提出这个问题,我愿意接受

谢谢

【问题讨论】:

    标签: mysql laravel vue.js


    【解决方案1】:

    想象一下,如果您有 1000 条数据,但您只发送了其中的 50 条,而您的用户按价格进行了过滤。您会只显示 50 或 1000 个过滤后的数据吗?

    这取决于您是否要将所有 1000 条数据公开给前端。这是两者之间的选择,并且每次都调用您的服务器 api。

    如果您正在调用服务器,请考虑使用像 Redis 这样的缓存来存储您的结果。

    伪代码。

    Request Received
        Check Redis Cache - Redis.get('key')
            If key exist - return cache.
            Else - 
                check mysql for latest results.
                Redis.set('key', latest results);
    
    
    CreateRequest Received
         - Write to mysql
         - Redis.delete('key')  // next request to view will create new cache with fresh data.
    

    你的密钥可以是任何东西,例如你的 url ('/my/url')

    https://laravel.com/docs/8.x/redis

    【讨论】:

    • 老实说,我不知道那是什么,不过我会去兔子洞……
    • redis 是非常非常常用的数据缓存层,所以你不需要重复查询你的 mysql 以获得相同的结果。
    • 感谢您的回复,将 1000 暴露给前端以进行过滤会很好,但不是很常见,用户需要从最新到最旧的潜在客户工作,所以从逻辑上讲,他们一次会工作 50 个,如果他们只想找到状态为 x 的人,那么点击 api 并加载状态为 x、y 或 z 的 50 个不是更容易吗?
    • 是的,你说得对。我对您的问题的理解是加载 50 还是 1000 才能进行交互。
    • 我的错,这是我在这里的第一篇文章,我可能没有问完全正确的问题,你对前景表中的一个单独的 json 列有什么看法来总结交互与交互资源:: 互动收藏。在大多数情况下,该集合将远远大于整个潜在客户资源
    猜你喜欢
    • 2014-06-15
    • 2012-04-15
    • 2021-08-07
    • 1970-01-01
    • 2021-08-17
    • 2016-11-04
    • 2018-11-29
    • 2022-09-28
    • 2012-05-06
    相关资源
    最近更新 更多