可以容纳不同过滤器和group by子句的表设计

时间:2019-07-11 10:55:43

标签: mysql database-design

我在汇总表的数据库设计中需要帮助。

我有一个非规范化表,用于存储用户的Web会话信息,例如来源,页面作者,用户位置,页面访问时间等。

我有某些分析查询,例如给定时间范围内的不重复用户数,用户会话数等,可以通过WHERE author = 'ABC'WHERE user_location = 'UK'等各种过滤器进行服务。

由于在触发上述查询时要扫描的数据量非常高,因此我计划在实际表的顶部放置一个汇总表。但是,我在这样做时感到很困惑,因为我无法从聚合表中提供上述查询。这是因为当没有应用过滤器时,我看到计数出现明显的峰值。下面是我设计的表格。该表的粒度是每个位置/作者/来源的1条记录。

create table agg (
date_key bigint,
num_sess int,
author varchar(255),
location varchar(255),
source varchar(255)
);

我希望获得一些有关表设计的建议,以便拥有汇总视图。

0 个答案:

没有答案