我正在尝试执行以下查询,以便为不同的帐户创建一个运行总计:
SELECT
a.`date`,
a.`account`,
a.`key`,
a.`balance`,
SUM(b.`balance`) AS 'running_balance'
FROM `balances` a
JOIN `balances` b ON a.`date` >= b.`date` AND a.`account` = b.`account`
GROUP BY a.`date`, a.`account`, a.`key`, a.`balance`;
这适用于较小的数据集,但是当我接近大约100,000行时,它会出现严重的性能问题。
我可以做些什么来提高性能?我应该考虑将哪些列编入索引?