【发布时间】:2014-02-24 13:53:39
【问题描述】:
我在一个数据库中有两个表,大约有 50,000 到 70,000 行。两者都是 MyISAM。第一个是 yahooprices,包含商品的 SKU 代码(列代码)和定价(列价格)。第二个表combined_stock 包含零件编号(与代码相同的信息,但排序不同)、价格、数量和描述。价格当前定义为 FLOAT 10,2 并设置为 0.00。我正在尝试使用以下语句将价格从 yahooprices(也是 FLOAT 10,2)拉到 combine_stock:
UPDATE combined_stock dest LEFT JOIN (
SELECT price, code FROM yahooprices
) src ON dest.partnumber = src.code
SET dest.price = src.price
我知道此语句有效,因为我在较小的测试量上进行了尝试。它们具有零件号和代码作为非唯一索引。我还尝试在两个表上建立索引价格,看看这是否会加快查询速度。从技术上讲,它应该在几秒钟内完成,但上次我尝试运行它时,它在一夜之间坐在那里,即使这样我也很确定它没有成功。有人有任何故障排除建议吗?
【问题讨论】:
-
共享数据结构,特别是每个表的相关列。数据类型、索引(和类型)等
-
你为什么要做左连接?更重要的是,为什么要将同一条数据存储在两个地方?
标签: sql indexing timeout sql-update