我有一个基于竞赛的应用程序,其中包括(比方说)10 种 cookies 和 6 种饮料。我使用 MODx Revolution 2.2 作为 CMS。
参赛者基本上指定他们想要哪种饮料并输入条形码(与 cookies 类型相关)。
我想在 CMS 中将其作为统计数据呈现,但我认为为每个 COUNT()
查询数据库会占用大量资源。
$biscuit1 = $modx->query("SELECT COUNT(*) FROM my_table WHERE barcode = '1234'");
$biscuit1 = $modx->fetch(PDO::FETCH_ASSOC);
$biscuit1 = $biscuit1[0];
所以我的问题是:
- 执行 16 次数据库查询(可能更多)是不好的做法吗?
- 如果有更好的方法来收集数据集统计信息,它是什么?
注意:我曾想过创建另一个统计表,在其中按小时在 cron 作业中运行这些查询。这有帮助吗?
最佳答案
COUNT(*)
并不是那么资源密集型。如果条形码
被索引也会有帮助。
此外,您还可以在一次查询中获取所有条形码的数据,而不必运行 16 个查询,每个查询一个
$result = $modx->query("SELECT barcode,COUNT(*) FROM my_table GROUP by barcode");
关于php - 从数据库收集统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562910/