【问题标题】:Postgresql logging daily statsPostgresql 记录每日统计信息
【发布时间】:2013-01-20 19:12:47
【问题描述】:

晚上好,

我正在尝试创建一个表,用于存储我的应用程序每天的网络使用情况的一系列统计信息(诸如新用户数量、总访问量等微不足道的信息),我目前正在动态查询这些信息,但是,我现在想开始存储它们,部分原因是为了提高性能(将聚合查询的负载减少到单次查找),部分原因是为了进行历史分析。

我已经为表提出了以下基本架构(列会比这更多,只是为了提供一个想法)

create table web_stats(
    web_stat_id bigserial primary key,
    date_created timestamp not null default now(),
    user_count integer not null,
    new_user_count integer not null
);
comment on table web_stats is 'Table stores statistics on web usage';

现在,我很高兴创建查询来填充表格(我使用 Quartz 调度程序每天运行查询)

但是,我不太确定为过去日期追溯填充表的最佳方式,我是否应该使用 INSERT 语句为应用程序上线后的每一天(大约 2 年前)创建一个空白行,然后使用更新填充空白行?还是可以一举搞定?有人可以提供一些 SQL 来创建行吗?

如果我的设计假设有任何问题,请告诉我!

【问题讨论】:

    标签: sql postgresql database-design relational-database postgresql-9.0


    【解决方案1】:

    这就是我最终做到的方式

    INSERT INTO web_stats (date_created)
        SELECT DATE('2011-08-20')+x.id
        FROM generate_series(0,521) AS x(id);
    

    其中 2011-08-20 是应用程序上线的日期,521 是从现在到那时的天数

    这将创建一个空表,以便我可以使用 date_created 字段来使用 UPDATE 语句填充其他字段

    也许不是最有效的方法,但它有效

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-06
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      相关资源
      最近更新 更多