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]
,但我很不确定。