Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Копирование большой таблицы в таблицу с множеством FOREIGN KEY / 9 сообщений из 9, страница 1 из 1
20.10.2015, 21:59:20
    #39081843
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
При миграции данных возникла необходимость таблицу с 19млн записей мигрировать в таблицу с множеством foreign key. Если мигрировать просто без всяких зарубежных ключей все работает за 200 сек. Как только добавляю foreign key, увеличивается время миграции в часы сейчас 8 часов. Пробовал сначала мигрировать в пустую базу, затем добавлять ключи. Один ключ резво встал (250сек), а вот остальные просто повисли. Всего 5 ключей, есть ли какие-нибудь идеи как правильнее мигрировать данные? Version 5.5.39
...
Рейтинг: 0 / 0
20.10.2015, 22:56:31
    #39081874
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
Если вы уверены в "чистоте" данных (т.е. что внешний ключ не будет нарушен), то можете на время вставки данных выключить проверку внешних ключей - foreign_key_checks = 0 .
...
Рейтинг: 0 / 0
21.10.2015, 17:15:08
    #39082692
alexnews
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование большой таблицы в таблицу с множеством FOREIGN KEY
miksoft,

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

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

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


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

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

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

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


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