java - DB 机器 CPU 周期与中端机器 CPU 周期

标签 java database hibernate

我有一个带有大量 IF 条件的 SELECT 查询,我可以在查询本身中执行此操作(占用数据库计算机的 CPU),也可以将其放入我的 java 代码中(占用服务器计算机的 CPU)。

这里有没有任何首选方法(将条件放入中间层的数据库中)?

更新:我的查询是对 2 个以上表的联接, 我使用左连接进行组合,有些行在第二个表中有相应的行,有些则没有。 当第二个表中没有相应的行时,我需要为这些列设置一些默认值。

SElECT CASE WHEN t2.col1 is null
    then 'default' else t2.col1
    END
FROM table1 t1
LEFT JOIN table2 t2 ON t1.id = t2.id

最佳答案

如果数据库确实无法比应用程序服务器更快地完成某些操作,并且如果移动到应用程序服务器,这实际上会减少数据库服务器上的负载,那么我会将其移动到应用服务器。

原因:如果达到硬件限制,拥有多个应用服务器比拥有集群数据库容易得多。

但是,应该彻底测试上面的第二个条件:如果远离数据库,许多东西不会减少(甚至增加)数据库负载。

更新:对于你需要的那种东西,我怀疑第一个条件是否满足 - 你测试过吗?一个简单的 CASE 是完全没有意义的,除非条件或分支包含一些非常昂贵的计算。

关于java - DB 机器 CPU 周期与中端机器 CPU 周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4021059/

相关文章:

java - 如何在 SoapUI 中获取日期减去天数?

sql-server - 处理大型数据库

java - 如何计算 Criteria Api 中的行数

java - 如何在纯 Java 中使用 PostConstruct

java - Drools:规则编译错误 - 无法解析为变量

c++ - 文件访问 -Java 或 C++

具有约束违反异常的 hibernate 批量更新

java - 在hibernate中从多对多表中检索数据

java - Box API Java SDK 搜索功能返回有限号。文件数量

c# - 从 byte[] 更改图像 src