mysql update 语句执行的非常慢

2016-12-21 18:06:04 +08:00
 liyu4

update dx_segmentdetail a1, dx_segmentidf a2 set a1.keyidf= a2.keyidf, a1.keytfidf= a1.keytf*a2.keyidf where a1.stat_date='2016-10-11' and a1.keyname = a2.keyname

同时更新两张表,是这样更新有错误吗?

2323 次点击
所在节点    问与答
5 条回复
sorra
2016-12-21 19:03:54 +08:00
索引怎么建的?
liyu4
2016-12-22 10:21:26 +08:00
@sorra keyname stat_date 都有索引
sorra
2016-12-22 11:59:13 +08:00
你在用 SQL 实现 TF-IDF 算法?这个要调优可能还真不容易。
我特意建了十万行数据,用你的 SQL 修改其中一万行,花了 1.5 分钟。
改成 select ,花了 0.5 分钟。
你可以 explain 一下看看,扫描行数颇多。笛卡尔积的规模更大。

有没有大神来评论一下?
liyu4
2016-12-22 13:30:40 +08:00
是的,这个更新过程是非常的耗费时间的。
liyu4
2016-12-22 13:33:44 +08:00
@sorra 期待大神来评论

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/329218

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX