【问题标题】:What is the best approach for high scaled system - DB procedure or Programming logic大规模系统的最佳方法是什么 - 数据库过程或编程逻辑
【发布时间】:2018-08-13 09:00:09
【问题描述】:

我真的陷入了一个谜题。

我们使用某种语言(java / php /python)作为前端和数据库之间的中介。我们使用 JPA/hibernate 来平滑这个数据流。如果我们与任何 DBA 核对,大多数数据处理、计算、作业处理都可以直接在 db 端通过过程或触发器进行,具有良好的可扩展性。如果在 java / php 端处理同样的事情,它需要更长的时间,并且由于事务处理不是很直接,因此问题可能会出现可伸缩性。

我想澄清我的想法是:1] 使用 DB 过程处理大多数可能的逻辑是否真的更好/正确的方法(比如处理影响许多表的大块处理)? 2] 可以通过 DB 实现可扩展性,而 Coding 无法实现? 3] 有没有更好的方法来查看这个 DB 和 Coding 的关系?

提前致谢。

问候

【问题讨论】:

    标签: java php database database-administration


    【解决方案1】:

    嗯,根据你说的,你说对了,

    但是,你并不总是会有一个正确的答案,例如,我正在做一个有 6M+ 记录的系统,你需要分析系统并检查数据库性能,当你启动时,性能会是很好,但是随着系统扩展并且您开始拥有越来越多的记录,在这里您将知道是否可以将触发器和所有内容保留在数据库中,或者您需要对它们进行硬编码,但据我所知,您是很高兴在数据库中完成计算,因为它在 3 个系统之间共享。

    所以我的建议是,将计算保留在数据库中,除非由于性能或任何因素而必须移动它们。

    【讨论】:

    • 我们当前的系统是Java。但是随着流量的增长(预计大约 10M+),我们将把大部分繁重的处理转移到 DB 过程中。这是个好举动吗?请建议
    • 你需要确保你不做存储过程中的业务逻辑,因为这是一个非常糟糕的主意,另外,你要确保你会一直监控数据库的性能,并确保你的团队有资格为程序编写干净的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2011-04-04
    • 2013-04-14
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多