sql优化,请大家帮忙,来者有分(100)

  • 主题发起人 主题发起人 okgxsh
  • 开始时间 开始时间
O

okgxsh

Unregistered / Unconfirmed
GUEST, unregistred user!
A 表ID,Type,TypeNo,batchMoney1 WWW 001 10002 WWW 002 30003 CCC 003 4000B表Type,TypeNo MoneyWWW 001 500WWW 001 10WWW 001 20WWW 002 200WWW 002 300WWW 003 400结果:Type,TypeNo,batchMoney TotalMoney( sum(Money) )WWW 001 1000 530WWW 002 3000 500WWW 003 4000 400我的方法Select A.Type,A.TypeNo,A.batchMoney,Sum(B.Money) as TotalMoneyFrom A Left join B ONA.Type=B.Type and A.TypeNo = B.typeNoGroup by A.Type,A.TypeNo,A.batchMoney,B.Type,B.TypeNo我的方法好像非常笨,B数据一旦非常庞大,Group这么多列,很慢,搞不懂怎么优化!那位帮忙优化一下
 
SQL很简洁,谈不上笨的。如果要优化,就应该在两张表上做包含Type以及TypeNo这两个字段的索引,如此处理后,应当足够快了。
 
有点笨,不符合范式 应该有c表(id , type,typeno) ,用 c.id group
 
你可以试试这个,估计能快点。select A.Type,A.TypeNo,A.batchMoney,B.TotalMoneyfrom A,(select Type,TypeNo,sum(Money) TotalMoney from B group by Type,TypeNo) Bwhere A.Type=B.Type and A.TypeNo = B.typeNo
 
感谢大家回复我测试了zbdzjx 方法:大概 B 表 25万条记录 耗时5秒 不知道这个速度如何?
 
后退
顶部