V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
edis0n0
V2EX  ›  数据库

EF Core 统计当前月创建的数据数量(DateTimeOffset 类型)效率最高的方法是什么?

  •  
  •   edis0n0 · 2022-10-18 15:36:21 +08:00 · 855 次点击
    这是一个创建于 796 天前的主题,其中的信息可能已经有所发展或是发生改变。
    5 条回复    2022-10-19 06:42:45 +08:00
    Chad0000
        1
    Chad0000  
       2022-10-18 15:39:13 +08:00
    这种统计功能其实可以考虑写表定时刷新,这样性能就无所谓了
    edis0n0
        2
    edis0n0  
    OP
       2022-10-18 15:42:25 +08:00
    @Chad0000 #1 查询频率其实不高,目前是直接 Where 和月第一天时间比大小,感觉很慢,不知道是不是遍历了全表,想问问要不要加索引。
    wu00
        3
    wu00  
       2022-10-18 16:25:26 +08:00
    1 ,要加索引
    2 ,DateTimeOffset 应该会存时区信息,EF 生成的 sql 扒出来看看执行计划,使用某些函数(比如 date_fromat)转换时间,从而导致索引失效
    clorischan
        4
    clorischan  
       2022-10-18 19:09:32 +08:00 via Android
    ID 是自增类型或者带时间戳的雪花 ID 或者是有序 GUID 的话,可以试试先找当月第一条数据,然后再查询 ID 大于这条的数据。
    u823tg
        5
    u823tg  
       2022-10-19 06:42:45 +08:00
    效率最高就是实时计数,或者定时计数,然后写表。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 02:38 · PVG 10:38 · LAX 18:38 · JFK 21:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.