Правильный способ MySQL добавить столбец из одной таблицы в другую

У меня есть большая таблица (~ 10 миллионов записей), которая содержит несколько ключей к другим, меньшим таблицам. Ключи уникальны в каждой из меньших таблиц, но не в большой. Я хотел бы добавить столбец в большую таблицу из одной из меньших таблиц на основе соответствия ключей, но я не уверен в «правильном» способе сделать это. У меня есть решение, которое работает, но на это уходит изрядное количество времени (думал, что это может быть неизбежно), и, как правило, это не лучший способ сделать это. Вот что у меня есть:

CREATE TABLE new_big_table LIKE big_table;
ALTER TABLE new_big_table ADD(new_column TINYINT NOT NULL);
INSERT INTO new_big_table SELECT big_table.*, smaller_table.my_column
  FROM big_table JOIN smaller_table ON big_table.key1 = smaller_table.key1
  AND big_table.key2 = smaller_table.key2;

Это выполняет свою работу, но действительно пахнет так, будто я все делаю неправильно. Похоже, что как минимум мне не нужно создавать дубликат таблицы, чтобы это сделать. Есть ли более прямой (и более эффективный?) Способ сделать это?

Возможно, стоит упомянуть, что это для личного хобби-проекта дома, так что я могу использовать все ресурсы машины (так как Я единственный пользуюсь им). Таким образом, если есть какие-либо простые советы по настройке производительности для таких вещей, я был бы признателен (я экспериментирую с этим на инстансе Amazon EC2, поскольку он должен быть намного быстрее и иметь больше памяти, чем мой персональный компьютер) .

5
задан Michael McGowan 6 March 2011 в 21:28
поделиться