У меня есть большая таблица (~ 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, поскольку он должен быть намного быстрее и иметь больше памяти, чем мой персональный компьютер).