У меня 2,8 миллиарда записей в таблице. В таблице используется INFOBRIGHT запуск двигателя при установке mysql. У меня есть несколько неправильных записей в таблице и вы хотите их исправить.Обмен данными в большой базе данных
Таблица Тест имеет 350 нечетных столбцов. У меня было как к данным своп из колонки P1 в колонке P3 несколько записей (не все). , Что я планировал осуществлять перенос данных подход заключается в следующем
- Извлечение данных из таблицы Test в файл CSV с помощью INTO OUTFILE функциональность MySQL
- Удалите ненужные записи из таблицы.
- Импорт данных CSV с использованием данных INFILE ЗАГРУЗИТЬ и использовать SET положение, чтобы переместить данные от P1 к P3 (пустая строка для P1 и SET P1 = P3)
подход, казалось, имеет смысл, пока я не понял, что Infobright не поддерживает SET пункт как упомянуто here
Выдержки из приведенной ниже ссылке
Конструкция SET поддерживается загрузчиком MySQL найден в стандартном MySQL загрузки , но не загрузчиком Infobright включены в ICE. Я смог выполнить загрузку с помощью инструкции SET; Интересно, что он будет работать, но SET будет проигнорирован Infobright.
Вопрос
- Есть ли более простой способ сделать это?
- Конечно, я могу редактировать CSV-файл. Но за 2,8 миллиарда записей I хотел бы иметь верный способ сделать это. Любые проверенные сценарии оценены.
- Я бы не хотел использовать загрузчик mysql и загружать данные в таблицу MYISAM, потому что от большого объема данных. Есть ли более быстрые подходы?
Почему бы не создать временную таблицу и выполнить запрос UPDATE с использованием этой таблицы temp и вашей таблицы llive для обмена данными? Или попробуйте использовать своп на месте? –
сообщите нам, поддерживает ли версия infobright обновить/вставить/удалить или нет? –
Обновление будет намного медленнее, поэтому исключается. Идея состоит в том, чтобы иметь минимальный перерыв –