sql 优化问题: 写了一个sql出现错误:Lock wait timeout exceeded; try restarting transaction

谁能优化优化:SELECTd.paymoney,d.owemoney,(selectsum(spending)fromcdn_account)asspending,(se... 谁能优化优化:
SELECT
d.paymoney,d.owemoney, (select sum(spending) from cdn_account ) as spending,
(select sum(money) from cdn_financedetail ) as charge ,
(select sum(money) from cdn_transaction) as consume
FROM
(select sum(p.paymoney) as paymoney,sum(p.paytotal-p.paymoney)as owemoney from cdn_pay p,cdn_user u where p.userid=u.userid ) as d
展开
 我来答
loveyurui
2011-06-27 · TA获得超过6556个赞
知道大有可为答主
回答量:2892
采纳率:33%
帮助的人:988万
展开全部
1 不需要嵌套子查询
select sum(p.paymoney) as paymoney,
sum(p.paytotal-p.paymoney) as owemoney
(select sum(spending) from cdn_account ) as spending,
(select sum(money) from cdn_financedetail ) as charge ,
(select sum(money) from cdn_transaction) as consume
from cdn_pay p,cdn_user u where p.userid=u.userid ;
即可。
按道理来讲,单纯的这条语句是不会引起Lock wait timeout exceeded; try restarting transaction 的问题。可能是与其它事务产生了资源争用。
你先用上面的句子试试,如果仍然出现上述的错误 那么你需要找到数据库还有那些事务对 cdn_account cdn_financedetail cdn_transaction cdn_pay ,cdn_user 五张表进行了操作。
arill
2011-06-28 · TA获得超过3143个赞
知道小有建树答主
回答量:1328
采纳率:0%
帮助的人:909万
展开全部
你不就是对多个表的数据各自求和吗?(外加一个userid的条件)
你这得多少个子查询啊,以下这样写难道有问题:
SELECT sum(p.paymoney) as paymoney,
sum(p.paytotal-p.paymoney)as owemoney
sum(cdn_account .spending) as spending,
sum(cdn_financedetail .money) as charge ,
sum(cdn_transaction.money) as consume
FROM
cdn_account ,cdn_financedetail ,cdn_transaction, cdn_pay p,cdn_user u
WHERE p.userid=u.userid
追问
不嵌套的话五个表一块儿查是不是有点慢,分开查求和数据会不会比一块儿查要快些?
追答
或许吧,你有够多的数据的话可以测试比较一下
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a12053094
2011-06-27
知道答主
回答量:10
采纳率:0%
帮助的人:4.3万
展开全部
SELECT
paymoney,owemoney, spending, charge , consume
FROM
(select sum(p.paymoney) as paymoney,
sum(p.paytotal-p.paymoney)as owemoney,
(select sum(spending) from cdn_account ) as spending,
(select sum(money) from cdn_financedetail ) as charge ,
(select sum(money) from cdn_transaction) as consume
from cdn_pay p,cdn_user u where p.userid=u.userid )

as d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式