【发布时间】:2012-06-16 23:28:57
【问题描述】:
此查询运行缓慢:
SELECT UserAccountNumber, balance, username FROM users JOIN balances ON
users.UserAccountNumber=balances.UserAccountNumber WHERE date < “2011-02-02”
我可以做些什么来提高它的性能?
我考虑过使用用户 ID 而不是 userAccountNumber 来加入。 Appart form 它,据我所知,JOIN 和 WHERE users.id = balances.idUser 以相同的速度执行......
那么..我还能改变什么来改进它? 谢谢。
【问题讨论】:
-
我们需要有关您的架构的更多信息。你在使用索引和外键吗?
-
你有什么指标?如果您在
users和balances中同时拥有userId和userAccountNumber,那么您的设置还没有完全标准化,这可能稍后会反过来咬你(如果他们不再指向相同的user记录?)。 -
我已将 UserAccountNumber 编入索引。但。拥有另一个带有 UserAccountNumber 和 ID 的表并在这里只使用 ID 进行 JOIN 会不会更快?谢谢。
-
“日期”列在哪个表?
标签: mysql sql performance join