Java 对于大规模的系统-数据库过程或编程逻辑,什么是最好的方法
我真的陷入了困惑 我们使用某种语言(java/php/python)作为前端和数据库之间的中介。我们使用JPA/hibernate来平滑这个数据流。如果我们与任何DBA进行检查,大多数数据处理、计算、作业处理都可以在过程或触发器的帮助下直接在db端完成,并且具有良好的可伸缩性。同样的事情,如果在java/php端处理,它需要花费相当长的时间,并且可能会再次出现可伸缩性问题,因为事务处理不是很直接 我想澄清的是:1]用DB过程处理最可能的逻辑(比如处理影响许多表的大块处理)真的更好/正确吗?2] 可伸缩性可以通过数据库实现,而不能通过编码实现吗?3] 有没有更好的方法来看待数据库和编码的关系 提前谢谢Java 对于大规模的系统-数据库过程或编程逻辑,什么是最好的方法,java,php,database,database-administration,Java,Php,Database,Database Administration,我真的陷入了困惑 我们使用某种语言(java/php/python)作为前端和数据库之间的中介。我们使用JPA/hibernate来平滑这个数据流。如果我们与任何DBA进行检查,大多数数据处理、计算、作业处理都可以在过程或触发器的帮助下直接在db端完成,并且具有良好的可伸缩性。同样的事情,如果在java/php端处理,它需要花费相当长的时间,并且可能会再次出现可伸缩性问题,因为事务处理不是很直接 我想澄清的是:1]用DB过程处理最可能的逻辑(比如处理影响许多表的大块处理)真的更好/正确吗?2]
关于好吧,根据你说的,你说对了 但是,并非总是您会有一个正确的答案,例如,我正在处理一个记录超过6M的系统,您需要分析系统并检查数据库性能,当您开始时,性能会很好,但是随着系统的扩展,您开始有越来越多的记录,在这里,您将知道是否可以将触发器和所有内容保存在数据库中,或者需要对它们进行硬编码,但从我所看到的情况来看,您最好在数据库中完成计算,因为它在3个系统之间共享
因此,我的建议是,将计算结果保存在数据库中,除非由于性能或任何因素而必须移动它们。我们当前的系统是Java。但随着流量的增长(预计将达到1000万左右),我们将把大部分繁重的处理转移到DB程序。这是一个好的举动吗?请建议您需要确保不在存储过程中执行业务逻辑,因为这是一个非常糟糕的主意,同时,请确保您将始终监视数据库的性能,并确保您的团队有资格为存储过程编写干净的代码。