Вы глупости говорите, уважаемый. У дамы миллиард записей, если их без промежуточных коммитов вставлять - лопнет лог, он по умолчанию у MySQL не тянет столько. Наблюдаемый эффект, видимо, и есть результат переполнения этого лога.helg wrote:В дополнение к вышепосоветованному "split -l", чтобы разбить гигантский файл на кусочки перевариваемого размера, можно ещё убрать автокоммит и проверку constraints при каждом insert. Для InnoDB таблицы:https://support.tigertech.net/mysql-large-inserts" onclick="window.open(this.href);return false;Code: Select all
SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0; -- тут запускаем миллиард инсертов SET UNIQUE_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1; COMMIT;
Надо либо причесать файл с миллиардом строк, вставив в него коммиты после каждой сотни инсертов, либо испечь текстовый файл с данными по записи на строку - и скормить его: команде mysqlimport или SQL-у "LOAD DATA INFILE".