Я создаю триггер в моей базе данных после вставки.ниже мой код
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
Первый подход - использование агрегатной функции, а другой - простое обновление.Что лучше с точки зрения производительности.
PS
Могут быть некоторые синтаксические ошибки, но моя главная цель - найти лучший запрос.
Спасибо