从数据库收集统计数据

时间:2013-03-22 04:46:16

标签: php mysql modx-revolution

我有一个基于竞争的应用程序,包括(比方说)10种饼干(饼干)和6种饮料。我正在使用MODx Revolution 2.2作为CMS。

参赛者基本上会指定他们喜欢哪种饮品并输入条形码(与饼干类型有关)。

我想将此作为统计信息在CMS中显示,但我认为查询每个COUNT()的数据库是非常耗费资源的。

$biscuit1 = $modx->query("SELECT COUNT(*) FROM my_table WHERE barcode = '1234'");
$biscuit1 = $modx->fetch(PDO::FETCH_ASSOC);
$biscuit1 = $biscuit1[0];

所以我的问题是:

  • 正在进行16次数据库查询(可能更多)不良做法吗?
  • 如果有更好的方法来收集数据集的统计数据,它是什么?

注意:我想过创建另一个统计表,我在一小时内在cron作业中运行这些查询。这会有帮助吗?

1 个答案:

答案 0 :(得分:1)

COUNT(*)并非所有资源密集型。如果将barcode编入索引,它也会有所帮助。 您还可以在一个查询中获取所有条形码的数据,而不必运行16个查询,每个查询一个

$result = $modx->query("SELECT barcode,COUNT(*) FROM my_table GROUP by barcode");