mysql - 在触发器中使用 Sum 等函数的最佳实践?
问题描述
我在插入后在我的数据库中创建一个触发器。下面是我的代码
CREATE TRIGGER updateBalance
After insert ON wallets
for each row
Begin
INSERT INTO userbalances (UserId, Balance) VALUES (New.UserId, (Select Sum(Amount) From wallets Where wallets.UserId = New.UserId))
ON DUPLICATE KEY UPDATE TotalBalance=VALUES(TotalBalance);
END
由于我的wallets
表包含很多记录,并且经常将新数据插入其中。上述方法是否有效且是一种良好做法?
这是我的另一种方法
CREATE TRIGGER updateBalance
After insert ON wallets
for each row
Begin
INSERT INTO userbalances (UserId, Balance) VALUES (New.UserId, New.Amount)
ON DUPLICATE KEY UPDATE TotalBalance=TotalBalance + VALUES(TotalBalance);
END
第一种方法是使用聚合函数,另一种方法是使用简单的更新。哪个是更好的性能明智。
附言
可能存在一些语法错误,但我的主要目标是找到更好的查询。
谢谢
解决方案
推荐阅读
- c# - 如何在 xamarin MVVM 中将数据从 content-page.cs 发送到 tabbed-page.cs?
- ios - 每 5 分钟附近的 messageLostHandler 事件
- hbase - Hbase:如何使用来自源 Hbase 表的数据将列族添加到 Target-Hbase 表
- r - 如何在数据框之间获取一列相同且另一列相似的行?
- php - 使用 glob 和 array_slice 时排除文件名
- python - 如何使用 Python 下载股票价格数据?
- mysql - 选择耗时 8 秒。改进想法
- c# - 由数据库填充时,组合框将值加倍
- haskell - 未将类型识别为变压器堆栈内的单子的关联类型
- php - nusoap 未定义索引在 nusoap.php 上线