我正在嘗試根據(jù)另一個MySQL信息更新一個MySQL表。我的original桌子看起來像:id | value------------1 | hello2 | fortune3 | my4 | old5 | friend而tobeupdated表如下所示:uniqueid | id | value---------------------1 | | something2 | | anything3 | | old4 | | friend5 | | fortune我想更新id在tobeupdated與id來自original基于value(存儲在字符串VARCHAR(32)字段)。希望更新后的表如下所示:uniqueid | id | value---------------------1 | | something2 | | anything3 | 4 | old4 | 5 | friend5 | 2 | fortune我有一個有效的查詢,但是非常慢:UPDATE tobeupdated, originalSET tobeupdated.id = original.idWHERE tobeupdated.value = original.value這使我的CPU耗盡,最終導(dǎo)致超時,并且僅執(zhí)行了一部分更新(有數(shù)千個要匹配的值)。我知道匹配的value速度會很慢,但這是我必須將它們匹配在一起的唯一數(shù)據(jù)。有沒有更好的方法來更新這樣的值?如果可以更快的速度,我可以為合并結(jié)果創(chuàng)建第三個表?我嘗試過MySQL-如何使用另一個表中的值更新表?,但并沒有真正的幫助。有任何想法嗎?在此先感謝您幫助MySQL新手!
3 回答

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊
這些表很大(original
有100,000多個條目和tobeupdated
10,000 多個條目),所以我接受了您和noodl關(guān)于索引的建議,整個查詢現(xiàn)在不到一秒鐘就完成了。我不敢相信其中的區(qū)別???非常感謝你的幫助; 我學(xué)到了很多
添加回答
舉報
0/150
提交
取消