我正在运行许多查询,这些查询将不断变化的数据合并到一个主表中,其中一个查询(如下)似乎运行得相当慢。
设置如下:products
表和products_temp
表具有相同的结构。新数据进入 products_temp
表,然后我运行类似于下面的查询以将新数据与主 products
表合并。
INSERT INTO products ( name, brand, price, feeds_id, img_url, referral_url, productid, isbn, ean, upc )
SELECT name, brand, price, feeds_id, img_url, referral_url, productid, isbn, ean, upc
FROM products_temp
WHERE feeds_id = 449
AND productid NOT IN (
SELECT productid
FROM products
WHERE feeds_id = 449
)
这两个表在 feeds_id
上都有索引,但我觉得这没有任何区别。
例如,products
可能包含超过 350 万行,products_temp
可能包含 50,000 行以合并 products
。
所以我的问题是这需要多长时间?我能多快完成?
最佳答案
是的,这个技术叫做Shadow Table trick .
关于sql - 这是我在 MySQL 中尝试做的事情的最佳查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3304063/