php - 从数据库收集统计数据

标签 php mysql modx-revolution

我有一个基于竞赛的应用程序,其中包括(比方说)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/

相关文章:

php - MySQL 插入表

mysql - 用于从 CSV header 创建 (My)SQL 表的工具(无脚本)

html - 如何从友好 URL - Modx 中删除 .html?

php - symfony : setHttpHeader() doesn't work, header() 确实

php - 重用 DOMDocument 或创建新文档对性能的影响

php - Android 使用 Httpclient 登录

php - 将动态文本框保存到数据库

javascript - 在 MODX 管理器中恢复弹出表单值

php - 如何使用 Modx Revolution API

PHP 脚本结果 500 Internal server error