为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

茅侃侃 2023-09-06 15:39:33
我有一个项目,用于计算仪表板的 MySQL 表中特定条件的实例。一开始很简单,但在几次“你可以添加...”请求之后,我的程序中出现了多达 86 个不同的查询。我预计未来会有更多“您可以添加...”请求吗?为了提高效率,将数据批量查询到 Java 然后在那里进行排序/计数,还是继续进行单独查询会更好/更快吗?该表很小,现在 <300 行,而且我看不到它会超过 900 行(如果这很重要的话)。
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

所有查询都是“SELECT count(*) where [条件 A] 和 [条件 B] 和 [条件 C]”的变体。它设置为每 5 分钟运行一次。


针对此类查询的提示:表达式为 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() 的技巧,它就非常简单,并且可以轻松向查询添加更多列以获取其他类型的计数。


查看完整回答
反对 回复 2023-09-06
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信