用SQL或Java过滤数据?

Car*_*eon 10 java sql filter

过滤数据的一般准则/规则是什么?我习惯于在WHERE子句中的SQL语句中看到过滤器,尽管有时候过滤器会给SQL带来复杂性,使得它对于中间开发人员来说很难读取,但是很好看,但写得很复杂的看起来很复杂经过精心调整和优化.过滤也可以用Java完成,但这当然有一个缺点,即来自SQL的未过滤数据可能很大并且仅将其加载到内存中以过滤它可能是浪费.当然,如果您有多个数据源作为过滤器所需的依赖项,则有些情况下您别无选择,只能在Java中进行过滤.

jmo*_*eno 6

尽可能过滤后端(sql).如果这使得查询对于初级开发人员而言过于复杂,那么就这样吧.虽然代码清晰度很重要,但您不应根据初级开发人员对其的理解程度做出设计决策 - 这足以使他能够使用它.

这是特别的情况下谈论不同的层时,你的初级开发者可能不知道任何SQL,你会不会再完全避免一个SQL后台?

编写您的SQL尽可能清晰(不牺牲性能),但这样做是为了期望维护它的人熟悉SQL以及如何使用它.当像这样跨越层时,一点点"更容易理解"可以真正地扼杀你的性能(从数据库中取回数据以便更新它,可能比数据库上的更新花费数千倍,不恰当地使用游标可以比基于集合的解决方案更糟糕).

  • 就一个小事,在SQL上过滤所有小事不是把大量的业务逻辑放在数据访问层吗? (2认同)

Cro*_*ter 5

如果数据已经在数据库中,那么在其中进行过滤更有意义,因为 RDBMS 将针对此类工作进行优化。如果过滤可能会让新手和中级开发人员感到困惑,为什么不将其隐藏在视图中,并且只向相关用户授予对该视图的访问权限呢?