V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
locochen
V2EX  ›  程序员

如何实时计算某一列的<倒计时>?

  •  
  •   locochen · 2022-12-12 17:40:06 +08:00 · 917 次点击
    这是一个创建于 711 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近实现了一个功能, 计算某一列的倒计时, 倒计时是和<创建时间>对比.

    实现思路是, 从数据库读取了需要的数据后, 实时计算一个新的<倒计时>列.

    现在还没理清楚思路的是, 如果是通过条件查询这个<倒计时>列, 比如是大于, 小于某个值, 现在思路就是去对比<创建时间>. 然后继续转换出新的<倒计时>列.

    感觉现在的计算量比较多, 也比较大. 其中一个原因是数据可以导出到 excel, 如果在大批量的时候. 可能性能有可能吃紧.

    不清楚这个 s 实现思路, 大家有更多的思路或者建议没, 如果不增加其他组件, 比如缓存等?
    7 条回复    2022-12-16 13:06:42 +08:00
    opengps
        1
    opengps  
       2022-12-12 17:43:55 +08:00
    sql 环节不需要计算啊,倒计时就是创建时间的反向,你直接一个条件过滤出来,程序显示时候在加上倒计时列就行
    opengps
        2
    opengps  
       2022-12-12 17:46:27 +08:00
    解决问题核心:
    1 ,数据库服务器,尽可能只进行必要的硬盘 io 操作(有利于数据库服务器承载更大的吞吐量)
    2 ,应用服务器,完成帮数据库服务器降低负载作用,比如计算类操作(有利于将来集群部署结构)
    c6h6benzene
        3
    c6h6benzene  
       2022-12-13 03:40:40 +08:00
    SQL 的话储存创建时间然后 SELECT 的时候 DATEDIFF 不就好了?
    YVAN7123
        4
    YVAN7123  
       2022-12-13 16:57:59 +08:00
    不需要处理倒计时吧, 只需要在显示的时候处理一下, 比如在 execl 中导出创建时间, 然后在对应列加个函数。直接可以用函数算一下倒计时。这样还是随时更新的倒计时不更好。 前端同理
    locochen
        5
    locochen  
    OP
       2022-12-16 13:02:11 +08:00
    @YVAN7123 这个是 excel 里面了, 其中一个需求满足不了, 比如条件查询, 例如查询"<倒计时> 是大于 1 小时的数据".
    locochen
        6
    locochen  
    OP
       2022-12-16 13:04:55 +08:00
    @c6h6benzene 比较想在服务上面实现, 因为会涉及到很多业务相关.
    locochen
        7
    locochen  
    OP
       2022-12-16 13:06:42 +08:00
    @opengps 是的, 也是考虑到这个问题. 所以再服务层设计实现. 现在实现了读取和查询的内容也工作的, 还没跑性能. 可能需要再看看性能如何, 是不是需要优化
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.