我有一个项目,用于对仪表板的 MySQL 表中特定条件的实例进行计数。一开始很简单,但在几次“你可以添加...”请求之后,我的程序中出现了多达 86 个不同的查询。我预计 future 会有更多“您可以添加...”请求吗?
为了提高效率,批量查询数据到 Java 然后在那里进行排序/计数,还是继续单独查询会更好/更快?
表格很小,现在 <300 行,如果这很重要的话,我看不到它会超过 900 行。
最佳答案
All the queries are variations of "SELECT count(*) where [condition A] and [condition B] and [condition C]". It's set to run every 5 minutes.
针对此类查询的提示:值为 1 或 0 的表达式的 SUM() 与表达式为 true 的行的 COUNT() 相同。这是一个方便的 MySQL 特有技巧(其他 SQL 实现不会将 true/false 视为与 1/0 相同)。
SELECT
SUM(<condition A>) AS count_A,
SUM(<condition B>) AS count_B,
SUM(<condition C>) AS count_C,
...
FROM mytable
这使您可以运行一个查询来扫描一次表,同时“计算”具有不同条件的行。
一旦您了解了 SUM() 的技巧,它就非常简单了,并且可以轻松向查询添加更多列以获取其他类型的计数。
关于java - Java 中的大数据库调用 + 解析 VS 许多数据库调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58121719/