Saya mencoba memperbarui satu tabel MySQL berdasarkan informasi dari yang lain.
originalTabel saya terlihat seperti:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
Dan tobeupdatedtabelnya terlihat seperti:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Saya ingin memperbarui iddi tobeupdateddengan iddari originalberdasarkan 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 valueakan 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!