java - Java 中的大数据库调用 + 解析 VS 许多数据库调用

标签 java mysql

我有一个项目,用于对仪表板的 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/

相关文章:

mysql - 通过关联使用named_scope

java - JDBC 中古怪的 latin1 到 UTF8 的转换

java - 运行时的 JPA 级联选项

Java 8 流:myList.stream().map(Foo::bar).collect(Collectors.toList()) 的简写

java - 清除 chromedriver 缓存 - java

java - xampp和net beans可以一起用于tomcat吗

mysql - 非法参数异常 : Type cannot be null (in JAVA)

php - 嵌套 WHILE 循环的问题

Microsoft PowerPoint 2010 中的 Java 应用程序

mysql - SQLite 选择所有记录并计数