我的网站访问者有一个统计数据库,我需要找到哪种方法可以存储数据:
我遇到了两个选项。
选项编号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
您认为哪个是最佳选择?或者还有更好的选择吗?如果它有大量的流量,请记住这一点。
非常感谢你。
答案 0 :(得分:1)
显然,更有效的方法是将第二个选项与计数一起使用。多行被卷成一行,仅用于4字节整数的费用。通常,使用多个行相同的表是低效的。
因此,出于查询目的,第二种选择会更好。
在创建和维护表格方面,第一选择更有效。插入新记录比更新现有行更便宜。这可能不是什么大问题,但可能会出现这种情况有所不同。