Как загрузить полностью большой дамп таблицы mysql?
Добрый день!
Есть 2 дампа таблицы базы данных
первый дамп 9,5 гб
второй дамп 2,5 гб
В каждом дампе больше 50 миллионов строк.
Гружу через консоль, идет процесс загрузки около двух миллионов за шаг, потом проходит время и процесс загрузки зависает, то есть он просто дальше не идет, не пишет никаких ошибок, просто висит как будто дальше работает и ничего не происходит, грубо говоря последний шаг висит 2 миллиона и все(сутки ждал).
Иду в базу, смотрю в таблица зависла на 48-49 млн строк и больше не грузит, как будто стоит какой то предел.
Другие дампы меньше 50 млн строк, грузит без проблем, а эти не хочет, доходит до 50 и все, причем если я добавлю еще раз загрузку не очищая базу, то дальше процесс пойдет и будет больше 50 млн, дойдет до 100 млн и опять зависнет(так не пойдет, дубли получаются)
Гружу через консоль openserver, пробовал mysql 5.7, 5.8, 8.0, так же MariaDB, понимаю какие то настройки, скорее всего, но какие не могу понять!
Открывайте вторую консоль в MySQL, и при повисании командой SHOW PROCESSLIST; смотрите, какие процессы чего делают. Может что-нибудь увидите...
Но скорее всего идет перестройка индекса. Можно перед всасыванием дампа сделать ALTER TABLE __tbl_name__ DISABLE KEYS;, конечно заменив __tbl_name__ на своё название заполняемой таблицы. Тогда индексы не будут перестраиваться, вплоть до выполнения команды ALTER TABLE __tbl_name__ ENABLE KEYS;. И вот после этого база задуууууумается...
Ещё вариант - в тексте дампа ищите последнюю попадающую в таблицу запись, а точнее какие запросы идут после этой записи. Может там какая-нибудь ошибка, глюк или некорректная комманда?
Нет никаких особых настроек.
Как сказали выше, посмотрите в error.log, на место на диске. А что показывает top - mysqld что-то делает при "зависании"? Если да, возможно индексы строит.