gpt4 book ai didi

mysql - 使用 JPA(hibernate)VS 存储过程

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:33 24 4
gpt4 key购买 nike

我正在使用 ZK Framework、Hibernate、Spring 和 Mysql 开发一个项目。

我需要从 Mysql 数据库生成一些图表,但在我计算出我需要计算这些图表值的对象数量后,我发现它超过 1400 个对象以及相同数量的查询和事务。

所以我想如果使用 Mysql 中的存储过程来计算这些值并将它们保存在单独的表中(使用接近数据仓库的体系结构),然后使用我的 Web 应用程序来读取这些表的值并显示它们作为图表。

我想知道在速度和性能方面,这些方法中哪种更好?

谢谢

最佳答案

没有更多细节,真的无法判断。然而:

你想做的是非规范化。这是一种公认​​的加快报告速度并使其更容易的技术。 (如果没有,你的非规范化就失败了!)当它起作用时,它有以下优点:

  • 报告运行速度更快
  • 报表代码更容易写

另一方面:

  • 报告数据已过时,仅包含您当时的数据最后计算

执行此操作的一种极端形式是采用 OLTP 数据库(标准数据库)并将其导出到分析数据库(也称为多维数据集或 OLAP 数据库)。

非规范化的一个问题是 a) 它通常需要付出巨大的努力,b) 它添加了额外的代码,这增加了复杂性并因此增加了支持成本,并且 c) 它可能不会产生足够(或任何)的差异。因此,通常在您知道您遇到问题之前不要这样做。当您在基本数据库上完成报告并发现它们太难编写和/或运行太慢时,就会发生这种情况。我强烈建议只有当你达到那个点时,你才去进行非规范化。

有时您不需要这样做,但在超过 25 年的开发过程中,我只见过 1 个这样的例子;出于政治目的,管理层希望使用 OLAP 数据库,这一决定得到了帮助。

关于mysql - 使用 JPA(hibernate)VS 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24285715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com