MySQL:如何优化字段 SUM 的结果?

Posted

技术标签:

【中文标题】MySQL:如何优化字段 SUM 的结果?【英文标题】:MySQL: How to optimize result of SUM of fields? 【发布时间】:2021-01-09 06:37:19 【问题描述】:

我有这个问题:

SELECT name, SUM(count_1 + count_2 + count_3 + count_4 + count_5 + count_6) AS Total
FROM my_table

有没有办法更有效地添加这些值count_1 + count_2 + count_3 + count_4 + count_5 + count_6 等等。当我添加大量字段时,mysql 不断崩溃。

【问题讨论】:

为什么有这么多字段?这通常表明架构未正确规范化。 投到BIGINT 您知道SUM() 用于跨多行聚合,对吧?如果您只想一次在一行中添加字段,则不需要它。 @Barmar 是的,因为上面的“count_1”确实代表了一天中的时间,我想存储一天中的每个时间的数据,所以我有 23 个这样的字段。我很好奇是否还有其他方法可以添加这些? 表格有多少行?添加所有行可能需要很长时间。 【参考方案1】:

无论db设计是对还是错,如果你使用聚合函数,你应该使用group by

SELECT name, SUM(count_1 + count_2 + count_3 + count_4 + count_5 + count_6) AS Total
FROM my_table
GROUP BY name

【讨论】:

以上是关于MySQL:如何优化字段 SUM 的结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何优化这个 MySQL 查询

用mongodb查询的时候,如何只查询出某一个字段的值?

SQL多个字段如何去重

如何对mysql中多个表的字段求和?

如何从 Joomla 的组件菜单项中获取 MySQL 查询结果并使用 foreach where 子句进行优化?

PHP如何取得mysql字段值并记算时间?