Saya mencoba memperbarui satu tabel MySQL berdasarkan informasi dari yang lain.
original
Tabel saya terlihat seperti:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
Dan tobeupdated
tabelnya terlihat seperti:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Saya ingin memperbarui id
di tobeupdated
dengan id
dari original
berdasarkan value
(string disimpan di VARCHAR(32)
lapangan).
Tabel yang diperbarui diharapkan akan terlihat seperti:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
Saya memiliki kueri yang berfungsi, tetapi sangat lambat:
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Ini memaksimalkan CPU saya dan akhirnya mengarah ke waktu tunggu dengan hanya sebagian kecil dari pembaruan yang dilakukan (ada beberapa ribu nilai yang harus dicocokkan). Saya tahu mencocokkan dengan value
akan lambat, tetapi ini adalah satu-satunya data yang saya miliki untuk mencocokkan keduanya.
Apakah ada cara yang lebih baik untuk memperbarui nilai seperti ini? Saya bisa membuat tabel ketiga untuk hasil gabungan, jika itu lebih cepat?
Saya mencoba MySQL - Bagaimana cara memperbarui tabel dengan nilai dari tabel lain? , tapi tidak terlalu membantu. Ada ide?
Terima kasih sebelumnya telah membantu pemula MySQL!