首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL语句长度异常长

MySQL语句长度异常长
EN

Stack Overflow用户
提问于 2014-02-24 13:53:39
回答 1查看 33关注 0票数 0

我在一个数据库中有两个表,大约50,000至70,000行。两者都是MyISAM。第一种是yahooprice,包含物品的SKU代码(列代码)和定价(列价格)。第二个表combined_stock包含部分编号(与代码相同,但排序不同)、价格、数量和描述。当前价格定义为浮点数10,2,并设置为0.00。我试图使用以下语句将定价从yahooprice(也可以浮动10,2)转到combined_stock:

代码语言:javascript
复制
UPDATE combined_stock dest LEFT JOIN (
SELECT price, code FROM yahooprices
) src ON dest.partnumber = src.code
SET dest.price = src.price

我知道这句话是有效的,因为我尝试了一个较小的测试量。它们有部分编号和代码作为非唯一的索引。我还尝试在两个表上建立索引价格,以查看这是否会加快查询速度。从技术上讲,它应该在几秒钟内完成,但上次我试着运行它时,它就在那里呆了一夜,即使这样,我也很确定它没有成功。有人有什么疑难解答建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-24 14:00:04

我建议作一些较小的改动。首先,去掉子查询。其次,切换到内部连接:

代码语言:javascript
复制
UPDATE combined_stock dest JOIN
      yahooprices src
      ON dest.partnumber = src.code
  SET dest.price = src.price;

最后,在yahooprices(code, price)上创建一个索引。

如果您真的希望在没有匹配时将价格设置为left outer join,则可以离开该NULL

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21989797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档