sql - MySQL inefficient cross table update between 3 tables -
i'm trying port legacy database (with no primary keys) better , more structured database in mysql.
i'm running query:
update table a, table b, table c set a.item_id = b.id b.description = c.description , a.id = c.id; a.item_id , b.id both int(11) fields, , b.description , c.description both varchar fields. b.description. , c.description not have keys or indices on them. a.id , c.id both primary keys.
table a , table c both tables 50,000~ rows, , table b contains 2000 or rows. result, triple join statement taking long time run. i'm pretty sure i'm not doing efficiently, more efficient way structure query?
first, should write using join syntax:
update table join table c on a.id = c.id join table b on b.description = c.description set a.item_id = b.id ; this shouldn't affect performance. however, should put index on description. suggest:
create index on b_description_id on b(description, id);
Comments
Post a Comment