gpt4 book ai didi

mysql - 计算大型 MYSQL 表中特定列中浮点值的平均值

转载 作者:行者123 更新时间:2023-11-29 07:00:32 25 4
gpt4 key购买 nike

我有一种情况需要计算特定列中所有值的平均值。我得到了这个有效的 SQL 语句:

SELECT SUM(`unitCost`)/COUNT(*) 
FROM `items`
WHERE `itemID_FK`=%d

我正在寻找有关如何提高效率的意见。此查询可能会导致必须读取大量记录。

我想知道保持每个 itemID_FK 的平均值是否更有效在一个单独的表中,并在记录添加到 items 时不断更新平均值 table ?

我在某处读到,拥有一个可以从数据库中的其他列或表计算或派生的列是违反数据库设计原则的。

编辑:

列:

instanceID    int(10) UN PK AI
userID_FK int(11) UN
itemID_FK int(11) UN
dateAdded date
datePurchased date
listID_FK int(11) UN
unitCost decimal(11,2) UN zerofill
quantity decimal(11,2) UN zerofill
unitID_FK int(10) UN

最佳答案

这是一个非常基本的查询,您不太可能找到任何方法让它实际运行得更快。您可以使用 avg() 函数,尽管它可能不会更快。

至于在另一个表中保持平均值:它违反了数据库设计的普遍最佳实践,但这并不意味着您不能这样做。人们做出妥协以提高绩效;像这样的权衡是软件开发人员的股票和交易。这样做会使查询平均值的速度更快,但会牺牲程序的清晰度和在主表上执行插入、删除和更新的任何地方的性能。

关于mysql - 计算大型 MYSQL 表中特定列中浮点值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412974/

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