Mysql 我应该合计吗?这是明智的做法吗?
我有一个跟踪网页浏览量的web应用程序。该应用程序检查最终用户的IP地址,并将其映射到一个国家。到目前为止,这里一切正常 然而,我意识到这个表(称为Mysql 我应该合计吗?这是明智的做法吗?,mysql,database,ruby-on-rails-3,database-design,Mysql,Database,Ruby On Rails 3,Database Design,我有一个跟踪网页浏览量的web应用程序。该应用程序检查最终用户的IP地址,并将其映射到一个国家。到目前为止,这里一切正常 然而,我意识到这个表(称为视图)的填充速度非常快,因为它跟踪每个页面视图。在某些达到500k、1M等的页面上,可能会在短时间内在此表上存储数百万条记录 我考虑每24小时将结果汇总到一个新表中(称为country\u views),然后删除视图中的记录 比如说。我的视图表可能如下所示: page_id | country_id | created_at | updated_at
视图
)的填充速度非常快,因为它跟踪每个页面视图。在某些达到500k、1M等的页面上,可能会在短时间内在此表上存储数百万条记录
我考虑每24小时将结果汇总到一个新表中(称为country\u views
),然后删除视图中的记录
比如说。我的视图
表可能如下所示:
page_id | country_id | created_at | updated_at
======= | ========== |=========== | ==========
1 | 1 | 2011-11... | 2011-11...
1 | 2 | 2011-11... | 2011-11...
1 | 1 | 2011-11... | 2011-11...
1 | 1 | 2011-11... | 2011-11...
2 | 4 | 2011-11... | 2011-11...
2 | 3 | 2011-11... | 2011-11...
page_id | country_id | total | created_at | updated_at
======= | ========== | ===== | ========== | ==========
1 | 1 | 3 | 2011-11... | 2011-11...
1 | 2 | 1 | 2011-11... | 2011-11...
2 | 4 | 1 | 2011-11... | 2011-11...
2 | 3 | 1 | 2011-11... | 2011-11...
24小时后。我计算这个表中的结果,并将它们放入一个名为country\u views
的新表中。这可能看起来像:
page_id | country_id | created_at | updated_at
======= | ========== |=========== | ==========
1 | 1 | 2011-11... | 2011-11...
1 | 2 | 2011-11... | 2011-11...
1 | 1 | 2011-11... | 2011-11...
1 | 1 | 2011-11... | 2011-11...
2 | 4 | 2011-11... | 2011-11...
2 | 3 | 2011-11... | 2011-11...
page_id | country_id | total | created_at | updated_at
======= | ========== | ===== | ========== | ==========
1 | 1 | 3 | 2011-11... | 2011-11...
1 | 2 | 1 | 2011-11... | 2011-11...
2 | 4 | 1 | 2011-11... | 2011-11...
2 | 3 | 1 | 2011-11... | 2011-11...
在同一个web应用程序上。我计划以饼图的形式向某些用户显示这些数据,以显示哪些国家正在查看某些页面
这是明智的做法吗?有更好的方法吗?我认为这种方法很好,特别是因为它可以很容易地通过编程撤销。为什么不在视图中保留一个计数呢
您只想计算哪个国家查看了哪个页面,所以只要添加一个计数列,如果记录已经存在,则增加它,否则添加一个新行:)Hmmm,我不知道它是否可以撤消,由于视图
表中的结果将被永久删除,这意味着您可以使用存储的聚合数据轻松地重新创建原始数据。这很有意义,尽管您的数据有很多重复项。据我所知,一个页面只创建了一次,但查看了多次。但是,如果我还想跟踪一天中查看了多少次,该怎么办。拥有count
列不能为我提供该数据集