Я пытаюсь сделать шаг к оптимизации таблицы 90GB +:
Старая таблица
Каждый день стол захватывает ок. 750 000 записей из внешнего источника и добавляет их в таблицу с новой датой. Это продолжается уже три года, насколько я понимаю. 97% записей не меняются от одного дня к следующему.
Новая таблица
Я пытаюсь просмотреть старую таблицу (миллионы и миллионы записей) и устранить избыточность, которая, вероятно, значительно уменьшит размер таблицы.
old_table
- дата
- record_id
- data_field (действительно много полей, но для примера)
new_table_index
new_table
- index_id
- record_id
- data_field
Логика при каждой записи в old_table
если (record_id не в new_table) или (record_id в new_table, но последняя запись имеет другое поле данных)
вставьте его в new_table и получите index_id
еще
получить последнюю запись index_id для этой записи_id из new_table_index
всегда
вставить index_id и дату в new_table_index
Есть мысли об оптимальных способах сделать это? Я не достаточно продвинут с MySQL, чтобы собрать все это вместе. Когда я попытался написать скрипт на PHP, он использовал 3 ГБ памяти, а затем потерпел крах. Другие предложения или вопросы ??? Большое спасибо!