Başka birindeki bilgilere dayanarak bir MySQL tablosunu güncelleştirmeye çalışıyorum.Başka bir değerden bir MySQL tablosunu güncelleştirin
Benim original
tablo gibi görünüyor:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
Ve tobeupdated
tablo gibi görünür:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Ben saklanan value
(dizeleri dayalı original
itibaren id
ile tobeupdated
yılında id
güncellemek istiyorum VARCHAR(32)
alanı). Ben çalışan bir sorgu var
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
, ama çok yavaş:
gibi güncellenmiş tablo umarım bakacağız
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Bu sonuçta benim CPU maxes ve bir zaman aşımına sebep olur Yapılan güncellemelerin sadece bir kısmı (eşleşecek birkaç bin değer var). value
ile eşleşmenin yavaş olacağını biliyorum, ancak bu, onları eşleştirmem gereken tek veri.
Böyle değerleri güncellemenin daha iyi bir yolu var mı? Birleştirilmiş sonuçlar için üçüncü bir tablo oluşturabilirdim, eğer bu daha hızlı olursa?
MySQL - How can I update a table with values from another table?'u denedim, ancak gerçekten yardımcı olmadı. Herhangi bir fikir?
Bir MySQL acemi için şimdiden teşekkür ederiz!
"Değeri" sütununda bir dizin var mı? – noodl
Merhaba noodl; hayır, 'value' şu anda bir endekse sahip değil. – Superangel