最近,我去采访了一家软件公司,该公司声称自己编写了企业级软件。在面试中,面试官说,最好使用数据库来存储数据。没有存储过程或触发器(或者更确切地说,它们应该保持在绝对最小)。
现在,我认为他纯粹从代码维护的角度(如描述的在这个PSE问题上,谢谢@gnat)提到了这一点,但是他提到这是出于性能原因。我知道公司使用C#和MSSQL作为后端。他的声明有效吗?如何通过将所有代码逻辑从数据库中删除来提高性能?
发布于 2015-04-30 07:21:21
性能不会因为“将大部分代码放入数据库”或“将代码排除在数据库之外”而增加或减少。关键是将代码的正确部分放入数据库(或将它们排除在外)。有助于减少网络通信量的部件可能适合存储过程。计算量大的部分最好不要进入数据库(否则可能会使数据库服务器成为处理瓶颈)。
对于其余的代码(对于企业系统来说通常是>90% ),基于“更好的可维护性和可进化性”的决策是最有意义的。即使是这样也可能会被选择。
发布于 2015-04-30 09:40:26
通常,如果您将更多的代码推送到DB,如果您做得对,那么它将导致性能的提高。我不明白为什么面试官会反过来说。
就我个人而言,我不会仅仅因为易于维护和易于单元测试而将任何代码放入DB中。在大多数应用程序中,由于将逻辑迁移到DB中而导致的性能改进不值得再头痛。
发布于 2015-04-30 07:44:54
数据库中没有代码的主要原因是可测试性和维护。测试数据库代码相对比较困难,它是一种隐藏的逻辑,尤其是在项目的维护阶段,它将很难维护。
https://softwareengineering.stackexchange.com/questions/280556
复制相似问题