27.01.2012, 01:35
|
Start Post: MySQL импорт большого файла
|
Senior Member
Регистрация: 08.05.2008
Сообщений: 834
Бабло: $258860
|
Всем привет
Нужно импортировать в мускул файл порядка 5гб (более 100 миллионов строк).
1) Пробовал инсертами сначала 1 инсерт - 1 строка. Заняло неделю, и часть инсертов вылетала с ошибками mysql server gone away
2) Пробовал LOAD DATA INFILE, думает сутки, потом убиваю скрипт и добавляется 20-30кк только.
3) Пробовал LOAD DATA INFILE и разбить файл по 100мб, первые 3-4 файла влетают за 10 минут и далее с каждым последующим запросом времени уходит больше и больше. Когда размер таблицы стал более 300мб - то время увеличивается в геометрической прогрессии.
4) Пробовал через mysqlimport - тоже самое что и пункт 2
5) Пробовал LOAD DATA INFILE через временные таблицы - тоже херня, мускул принимает куски по 20мб, весь файл не берёт. Тупо пишет что нет места в темп таблице (The table 'temp_test' is full). Гуглил пол дня - не нашёл какие параметры отвечают за размер временной таблицы, кроме
max_heap_table_size = 300M
tmp_table_size = 300M
300МБ это уже я поставил настройки, и попробовал вогнать файл 100мб, таже самая ошибка "The table 'temp_test' is full".
Временную таблицу делал engine HEAP.
Точнее и так и так:
type=heap
engine=memory
Вобщем вот такие вот проблемы, как это реализовать?
Просто один раз вогнать данные фиг с ними можно подождать неделю. Но данные добавлятся в таблицу будут постоянно, и сколько времени будет это занимать - страшно подумать.
|
|
|