1
我正在建立一個虛擬貨幣系統,因爲它位於真實貨幣中,所以準確保留數據是一個非常關鍵的目標。我正在建立我的貨幣,以便用戶錢包沒有固定的價值('金額'),而是它們之間的所有交易的淨額 - 有點像比特幣。因此,如果我正在計算錢包的金額,我的MySQL查詢看起來像這樣。索引如何提高MySQL中的聚合查找速度?
SELECT (
SELECT IFNULL(SUM(`tx`.`amount`), 0)
FROM `transactions` AS `tx`
WHERE `tx`.`to_wallet_id` = 5
) - (
SELECT IFNULL(SUM(`tx`.`amount`), 0)
FROM `transactions` AS `tx`
WHERE `tx`.`from_wallet_id` = 5
) AS `net`
此建立查詢使用SUM()
的彙總數據的所有交易向所有交易從錢包減去錢包net
值。最終值表示錢包當前包含多少錢。
總之,我想知道如何優化我的表格,以便這些查詢的速度和規模都非常快。
我會假設我應該索引[from_wallet_id, amount]
和[to_wallet_id, amount]
,但我很不確定。