У меня есть сценарий, где мне нужно сделать относительно большое количество вставок.Допустим, у меня миллионы строк в минуту ... которые вставляются в структурно идентичные таблицы, но с различными уровнями агрегации, применяемыми к данным.
Кроме того, чтобы снова получить доступ к этим данным, они довольно сильно проиндексированы,
Теперь, чтобы сделать вставки как можно быстрее, чтобы освободить время для другой обработки, я подумал о вставке в таблицу «DUMP», которая имеет точно такую же структуру, но без индексов ...и затем запускает «процедуру слияния», которая будет ETL данных в индексированных таблицах агрегирования ... утверждая, что, поскольку все это происходит внутри базы данных, это должно быть быстрее, чем несколько раз протолкнуть его извне.
Однако простая «вставка в таблицу B select * from tableA» легко превосходит мой innodb_buffer_pool с блокировками строк, а затем выдает ошибку 1026.
Итак, наконец, вопрос: существует ли быстрый / надежный способ перемещения /объединение больших объемов данных из одной таблицы в другую?
Таблицы могут и, вероятно, будут разделены.Я предполагаю, что это желаемое мышление, что вы могли бы просто переместить раздел из одной таблицы в другую.
Если это «выбрать из вставки в», то, я думаю, будет безопаснее и проще просто вставить все это со стороны приложения..