gpt4 book ai didi

database - 2 个关于数据库开发哲学和最佳实践的问题

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

关于 Web 应用程序的数据库实现,哪一个是最好的:一个精简且非常小的数据库,只有基本信息,旁边是一个根据需要“重新计算”所有次要信息的应用程序基本的,或者,一个数据库,里面装满了所有那些以前已经计算过的次要信息,但可能已经过时了?

显然,这是一个权衡,我认为任何人都会说这个问题的最佳答案是:“取决于”或“是两者的混合”。但我真的不太舒服或没有足够的经验来单独推理这个问题。有人可以分享一些想法吗?

另外,另一个不同的问题:数据库应该是特定时刻的“快照”,还是应该积累以前的所有信息,以便追溯发生的事情?例如,假设我正在为一个银行账户建模。我应该只保留当天的余额,还是应该保留所有的交易,并从这些交易中推断出余额?

关于这类东西的任何指示,在某种程度上,在数据库设计中更深入?

谢谢

最佳答案

我的快速回答是将所有内容存储在数据库中。 在谈到超大规模应用程序时,存储成本远低于处理成本。在小规模应用程序中,数据会少得多,因此存储仍然是一个合适的解决方案。

大多数RDMS都非常擅长处理海量数据,所以当有数百万/万亿条记录时,仍然可以相对快速地提取数据,而不是每次都手动处理数据。

如果您选择计算数据而不是存储数据,则处理时间不会以与数据大小相同的速度增加 - 数据越多 ~ 用户越多。这通常意味着处理时间将乘以数据大小用户数量。

processing_time = data_size * num_users

为了回答您的其他问题,我认为最好的做法是引入特定时刻的“快照”仅当数据达到如此高的值以至于处理时间会很长时。

在计算大额金额(例如银行余额)时,最好将任何繁重计算的结果及其日期戳记存储到数据库中。这仅仅意味着他们不需要再次计算,直到它变得过时。

关于database - 2 个关于数据库开发哲学和最佳实践的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450411/

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