gpt4 book ai didi

mysql - 如何优化表以选择 SUM?

转载 作者:行者123 更新时间:2023-11-29 19:15:12 27 4
gpt4 key购买 nike

假设我有一个包含数百万条记录的表,记录银行帐户上的交易。 (这不是银行帐户,但对于本问题而言已经足够接近了。)

  • 用户(拥有此记录的用户的 ID。)
  • 金额(添加 (+ve) 或删除 (-ve) 的整数金额。)
  • (其他字段)

我可以运行这些 SELECT 命令来获取任何特定用户或所有用户的“余额”...

SELECT SUM(amount) AS balance FROM MyTable where user = (id)
SELECT user, SUM(amount) AS balance FROM MyTable GROUP BY user

这样做的问题是,添加的记录越多,花费的时间就越长,而且表也会变大。

我怀疑(担心?)答案是添加一个更新第二个每用户表的触发器。然而,我想知道这种模式对于银行或会计系统是否足够常见,以至于数据库系统有专门为此用途而设计的内置优化?

最佳答案

首先,我将从索引开始。确保您有 (user, amount) 索引。这肯定会对第一个查询有所帮助。

至于第二个,这将具有挑战性。此查询需要遍历所有数据,因此您可以选择使用更快的硬件来加快速度。

就您的情况而言,最好的选择是拥有一个包含当前余额的表,并使用触发器维护该表。

关于mysql - 如何优化表以选择 SUM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42765892/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com