数据库设计:为数千个单独的应用程序存储每小时分析

时间:2014-03-15 15:06:37

标签: mysql database schema analytics

我有兴趣设计一个数据库,用于跟踪来自多达数千个应用的实时使用情况统计数据。每次加载应用程序时,都会调用一个PHP脚本,该脚本会将相关应用程序的当前小时数增加1。在MySQL中执行此操作的最快,最干净的方法是什么?

汇总数据需要能够快速编译,例如,显示应用程序过去24小时内每小时的流量或过去30天的每天流量。

如果所有内容都存储在一个表中,则意味着为每小时或每个应用创建新列,这听起来不对。将每个应用程序存储在自己的表中听起来就像是意味着改变设计将是一场噩梦。 MySQL是不是一个糟糕的选择吗?

1 个答案:

答案 0 :(得分:0)

这似乎是一个广泛的问题,但我认为答案较窄。创建一个包含以下列的表:

  • 应用程序名称(或ID)
  • 小时说明符(可能是多列并包含日期)

以及其他列,例如:

  • 创建日期时间
  • 每行的唯一(自动递增)ID

然后,您的代码将在此表中插入行。您并不需要特别计算,而update会产生比insert更多的开销。

如果生成的查询不够快,那么请考虑如何优化它。首先考虑索引。然后定期考虑(比如每小时一次)提取报告表的数据。