1
我堅持通過與php/Mysql中的另一個表進行比較來更新表的一列。我試圖通過索引表列來加速這個過程,優化查詢等,但無法加快過程。Mysql基於另一個表更新一個表列大量的數據
在我的基於php的應用程序中有兩個表(表A和表B),我想通過與表B比較來更新表A的一列(帶有兩列 - 名稱爲& SKU)。
以前的上述過程已花費最多15個薄荷糖來更新28k產品。但是現在這兩個表(表A和表B)都有60k行。現在需要兩個多小時。我在下面的查詢
mysql_query("UPDATE tableA a
JOIN tableB b ON a.product_code_sku = b.sku
SET a.is_existing_product = '1'") or die(mysql_error());
mysql_query("UPDATE tableA a
JOIN tableB b ON a.product_name = b.product_name
SET a.is_existing_product = '1'") or die(mysql_error());
上面的查詢使用是非常緩慢之後,我已經改變了更新過程像下面
$query_result = mysql_query("SELECT t1.`id`,t2.`product_id` FROM `tableA` t1,
`tableB` t2 where (t1.product_code_sku = t2.sku
or t1.product_name = t2.product_name)") or die (mysql_error());
while($result_row = mysql_fetch_array($query_result))
{
mysql_query("UPDATE `tableA` SET is_existing_product = '1'
where id = '".$result_row['id']."' ") or die (mysql_error());
}
但是我所有的努力都白費了。
請指教我如何使過程更快。
非常感謝您的寶貴答案。我會在測試後確認你,並且查詢將是「重複密鑰更新」而不是「重複密鑰集」對嗎? – 2014-09-22 11:34:34
SUPERB ....你的代碼就像一個魅力......現在這個過程只需要6個小時......感謝很多人...... – 2014-09-22 12:06:37