哪种方式在mysql上存储统计信息更有效?

时间:2014-03-24 00:20:58

标签: php mysql sql

我的网站访问者有一个统计数据库,我需要找到哪种方法可以存储数据:

我遇到了两个选项。

选项编号1:

+-----------------------------+
+ date        | country       +
+-----------------------------+
+  2014-03-20 | US            +
+  2014-03-20 | US            +
+  2014-03-20 | NL            +                 
+  2014-03-21 | US            +
+-----------------------------+

然后使用Select count(*) from table

获取访问者数据

选项编号2:

+-----------------------------+
+ date        | country | visits+
+-----------------------------+
+  2014-03-20 |     US | 2    +
+  2014-03-20 |     NL | 1    +
+  2014-03-21 |     US | 1    +
+-----------------------------+

然后使用Select sum(visits) from table

获取访问者数据

您认为哪个是最佳选择?或者还有更好的选择吗?如果它有大量的流量,请记住这一点。

非常感谢你。

1 个答案:

答案 0 :(得分:1)

显然,更有效的方法是将第二个选项与计数一起使用。多行被卷成一行,仅用于4字节整数的费用。通常,使用多个行相同的表是低效​​的。

因此,出于查询目的,第二种选择会更好。

在创建和维护表格方面,第一选择更有效。插入新记录比更新现有行更便宜。这可能不是什么大问题,但可能会出现这种情况有所不同。