1 / 1 / 1
Регистрация: 11.12.2012
Сообщений: 149
1

Обновление больших объёмов данных(150к полей)

07.11.2013, 20:54. Показов 1098. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго всем времени суток. Встала задача обновления больших объёмов данных - парсинг большого xls-файла и записи данных в MySQL. Подскажите, пожалуйста, как правильней это сделать. Мне в голову приходит только начать транзакцию, удалить все данные и сделать огромный insert, но я нутром чую что это бред. Ах, да! И желательно знать какой сервер для этого нужен(память и т.п.). Огромное спасибо!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2013, 20:54
Ответы с готовыми решениями:

Выбор БД для больших объёмов данных
Собственно, планируется запись порядка 100-200к строк новостных лент (включая текст новостей) в...

Обработка больших объёмов данных
Есть выделенная виртуальная память ReadCount=6 000 000 000 Buffer = (U16 *)VirtualAlloc(NULL,...

Алгоритмы сортировки больших объёмов данных
Здравствуйте, столкнулся со следующей проблемой: Имею бинарный файл, в котором хранится матрица из...

Как быстро обрабатывать текст из файлов больших объёмов
Здравствуйте, искал как быстро читать текст из файлов больших объёмов, наткнулся на функцию: ...

1
363 / 334 / 38
Регистрация: 29.03.2011
Сообщений: 838
08.11.2013, 03:45 2
Extalionez, если выставить max_allowed_packet в настройках мускуля побольше, то можно хоть все 150к Insert-ов в 1 запрос упихнуть.

Вообще - делается так. Создаётся временная таблица (если основная в это время должна быть доступна, если пофиг - можно прям туда втыкать). Делается несложный скрипт, читающий записи (я с .csv сталкивался, н xls отличается только форматом).
На каждые 1-10к считанных записей (подбирается экспериментально) собирается 1 Insert и вставляет данные в Temp-табличку.
Таким образм может от пары сек до минуты работать (зависит от железа).
Когда таблица заполнится, выполняется 1 запрос:
MySQL
1
INSERT INTO `main_table` SELECT * FROM `tmp_table`
Он относительно быстро отработает и profit.

По железу: важны память и проц. Если задача одноразовая - на любом подручном. Если частая и на боевом сервере - можно впереться в память и уйти в своп с временной таблицей, возможно, стоит её делать НЕ TEMPORARY (если это vps с 256 ОЗУ).
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2013, 03:45
Помогаю со студенческими работами здесь

Какой массив использовать для хранения больших объёмов информации?
В целях саморазвития пишу программу для поиска дубликатов файлов по названию. Алгоритм типа такого:...

Формула построчного выбора данных и обновление полей
Добрый день! Подскажите плиэ В Excel есть вот такая формула: =ЕСЛИ(ПСТР(А1;1;1)='В';'';1)...

Обновление данных из Oracle для набора полей
Есть такая задачка: Из большой базы товаров в Oracle выбрано несколько десятков артикулов. Для них...

После ввода данных в форму предусмотреть обновление полей в таблице
Добрый день. Ломаю голову над следующей проблемой. Есть таблица "Движение": Код детали,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru