powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Копирование большой таблицы в таблицу с множеством FOREIGN KEY
9 сообщений из 9, страница 1 из 1
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39081843
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При миграции данных возникла необходимость таблицу с 19млн записей мигрировать в таблицу с множеством foreign key. Если мигрировать просто без всяких зарубежных ключей все работает за 200 сек. Как только добавляю foreign key, увеличивается время миграции в часы сейчас 8 часов. Пробовал сначала мигрировать в пустую базу, затем добавлять ключи. Один ключ резво встал (250сек), а вот остальные просто повисли. Всего 5 ключей, есть ли какие-нибудь идеи как правильнее мигрировать данные? Version 5.5.39
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39081874
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если вы уверены в "чистоте" данных (т.е. что внешний ключ не будет нарушен), то можете на время вставки данных выключить проверку внешних ключей - foreign_key_checks = 0 .
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082692
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

спасибо очень хорошая идея, я попробовал, скорость не сильно изменилась, исключил уникальный индекс сразу поднялась скорость миграции до 48 минут с 5 часов. Решил мигрировать данные в таблицу с foreign key, но без уникального индекса, затем добавляю уникальный индекс и это занимает 10 минут всего вся миграция теперь чуть больше часа. Спасибо miksoft, заставил меня поиграть с данной настройкой. Кстати уникальный индекс я тоже отключал но он даже когда говорит OFF почему-то медленно работает и при тестах все-равно проверяет уникальность.
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082757
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnewsПри миграции данных возникла необходимость таблицу с 19млн записей мигрировать в таблицу с множеством foreign key. Если мигрировать просто без всяких зарубежных ключей все работает за 200 сек. Как только добавляю foreign key, увеличивается время миграции в часы сейчас 8 часов. Пробовал сначала мигрировать в пустую базу, затем добавлять ключи. Один ключ резво встал (250сек), а вот остальные просто повисли. Всего 5 ключей, есть ли какие-нибудь идеи как правильнее мигрировать данные? Version 5.5.39

Так добавляй FK ПОСЛЕ миграции.
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082783
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivalexnewsПри миграции данных возникла необходимость таблицу с 19млн записей мигрировать в таблицу с множеством foreign key. Если мигрировать просто без всяких зарубежных ключей все работает за 200 сек. Как только добавляю foreign key, увеличивается время миграции в часы сейчас 8 часов. Пробовал сначала мигрировать в пустую базу, затем добавлять ключи. Один ключ резво встал (250сек), а вот остальные просто повисли. Всего 5 ключей, есть ли какие-нибудь идеи как правильнее мигрировать данные? Version 5.5.39

Так добавляй FK ПОСЛЕ миграции.


...
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082784
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

Надо потом добавлять ТОЛЬКО FK.
Все индексы и остальные констрейнты -- сразу.
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082926
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А скажите, пожалуйста, пока идет копирование в таблицу, в самой таблице по select count(*) FROM table; постоянно 0, пока копирование не закончится. Это получается все пишется в темп? Если да, то нельзя это как-то настроить чтобы сразу сбрасывалось данные в таблицу?
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39082961
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexnews,

размер пакета транзакций задай.
...
Рейтинг: 0 / 0
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
    #39085441
Фотография alexnews
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,
спасибо

кстати заметил может быть случайно, но эти 20млн записей никак не хотели лезть в базу данных пока я не указал innodb_file_per_table
это так заметки может я не прав, но тоже помогло.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Копирование большой таблицы в таблицу с множеством FOREIGN KEY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]