0

就这么简单,在性能方面有什么更好的呢?我正在根据用户数据输入(简单算术)进行一些计算,我应该执行操作并将结果存储在数据库中还是每次执行 SELECT 查询时都执行操作?

选项1:每次我从表中获取数据时操作

SELECT 
  some_random_fields,
  salary,
  extra_days,
  extra_days * salary * 0.05 AS extra_income 
FROM 
  table 
WHERE 
  user_id = 'xxx'

方案二:操作一次,INSERT INTO表,不操作取结果(额外列)

SELECT 
  some_random_fields,
  salary,
  extra_days,
  extra_income 
FROM 
  table 
WHERE 
  user_id = 'xxx'
4

1 回答 1

1

答案是视情况而定。

在您描述的情况下,在需要时进行计算显然是有利的,因为工资或百分比0.05( ,或者当前经济要求使用0.04而不是0.05),并且最好根据需要计算它,而不是必须更新整个数据库来存储新的extra_income. 与计算的准确性和无需记住在事情发生变化时更新所有数据的需要相比,计算的成本(特别是当范围限制为单个user时)可以忽略不计。WHERE

如果数据是静态的(很少或从不更改),或者您需要保留这些值(出于某些历史原因或审计跟踪),请预先进行计算并存储它。使用的额外空间通常不是问题,并且由于数据是静态的,因此无需在每次执行SELECT.

于 2013-08-08T23:28:31.367 回答