php - 获取 MySQL 之外的 MySQL 行总和的技巧

标签 php mysql performance

所以我有以下查询:

SELECT DISTINCT d.iID1 as 'id',
                      SUM(d.sum + d.count*r.lp)/sum(d.count) AS avgrat
                      FROM abcd i, abce r, abcf d
                      WHERE r.aID = 1 AND
                      d.iID1 <> r.rID  AND d.iID2 = r.rID GROUP BY d.iID1
                      ORDER BY avgrat LIMIT 50;

问题是....表中有数百万个条目,SUM()GROUP BY 会卡住查询....是否有使用 MySQL 和/或 PHP hacks 立即执行此操作的方法(也许用 PHP 进行求和......但我将如何去做......)

最佳答案

回答直接的问题:不,没有办法立即做任何事情。

如果您可以控制表更新或添加相关记录的应用程序,那么您可以添加逻辑,在每次更新时使用总和、计数和 ID 更新另一个表。然后修改后的查询以“总和表”为目标并简单地计算平均值。

关于php - 获取 MySQL 之外的 MySQL 行总和的技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200204/

相关文章:

php - WordPress: "Warning: Illegal string offset"在多个地方

php - 重新排序 MySQL

php - 使用 ARC2 PHP 库的 SPARQL INSERT

mysql - 慢 Group_concat 查询

mysql - 第三个字符为 "_"时更新

Javascript字典性能问题

c - 套接字 : measure data transfer rate (in bytes/second) between 2 applications

PHP-MySQL 标记

mysql - 在同一个表中查找在 MySQL 中具有 %40 的电子邮件

performance - Maven 3 提供的性能是否比 Maven 2 更好?