gpt4 book ai didi

php - MySQL - 动态计算字段与存储计算数据

转载 作者:IT老高 更新时间:2023-10-29 00:03:03 25 4
gpt4 key购买 nike

如果之前有人问过这个问题,我深表歉意,但我似乎找不到关于动态计算与在数据库中存储字段的问题的答案。

我读了几篇文章,建议最好在可以的时候进行计算,但我只想知道这是否仍然适用于以下 2 个示例。

示例 1. 假设您正在存储与汽车相关的数据。您以升为单位存储油箱尺寸,以及每 100 公里使用多少升。您还想知道它可以行驶多少公里,这可以根据油箱尺寸和经济性来计算。我看到有两种方法可以做到这一点:

  1. 添加或更新汽车时,计算 KM 的数量并将其作为静态字段存储在数据库中。
  2. 每次访问汽车时,即时计算 KM 的数量。

因为汽车经济性/油箱尺寸不会改变(尽管可以编辑),KMs 是一个非常静态的值。我不明白为什么我们每次访问汽车时都要计算它。与简单地将其存储在数据库的单独字段中并仅在添加或更新汽车时计算相比,这不会浪费 CPU 时间吗?

我的下一个例子,几乎是一个完全不同的问题(但在同一主题上),与计算 child 数量有关。

假设我们有一个包含类别和项目的应用程序。我们有一个显示所有类别的 View ,以及每个类别中所有项目的计数。再一次,我想知道什么更好。要在每次访问页面时执行 MySQL 查询以计算每个类别中的所有项目?或者将计数存储在类别表的字段中并在添加/删除项目时更新?

我知道存储任何可以计算的东西都是多余的,但我担心计算字段或计算记录可能比将数据存储在字段中慢。如果不是,请告诉我,我只想了解何时使用这两种方法。在小范围内,我想这两种方式都不重要,但是像 Facebook 这样的应用程序,他们真的会在每次有人查看您的个人资料时计算您拥有的 friend 数量,还是只是将其存储为一个字段?

对于这两种情况的任何响应,以及任何可能解释计算与存储优势的资源,我将不胜感激。

提前致谢

基督徒

最佳答案

在数据库中引入冗余是一种有效的优化手段。与所有优化一样,除非您已确认这是真正的瓶颈所在,否则不要这样做。

关于php - MySQL - 动态计算字段与存储计算数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508705/

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