Вот моя проблема.У меня есть две таблицы MySQL, одна с 3,3 миллиона записей и одна с 700 000 записей.Все 700 000 записей, которые находятся во второй таблице, существуют в первой, и у этих двух таблиц есть один общий столбец.Я хочу выбрать * из обеих таблиц для всех 700 000 записей и вставить их в новую таблицу.Я создал индекс для обоих общих столбцов.Вот что я обычно делаю
INSERT INTO MergedTable (FirstName TEXT, LastName TEXT, Address TEXT) SELECT FirstNameFromTable1, LastName, Address FROM Table1, Table2 WHERE FirstNameFromTable1 = FirstNameFromTable2
Но размер таблиц приводит к зависанию этого оператора и в конечном итоге запрос прерывается.Любые идеи о том, как сделать это более эффективно?Для справки, вот команды, которые я использовал для создания двух рассматриваемых таблиц.Спасибо за вашу помощь.
CREATE TABLE Table1 ( FirstNameFromTable1 varchar(300), LastName TEXT, index(FirstNameFromTable1) );
CREATE TABLE Table2 ( FirstNameFromTable2 varchar(300), Address TEXT, index(FirstNameFromTable2) );