@Mo1she

Ускорение процесса записи данных в mysql?

Здравствуйте. Я, используя php XmlReader, распаршиваю большой xml файл и записываю в mysql. Но получается довольно медленно (60 тыс строк за 7 мин). То есть с такой скоростью мне понадобится несколько дней. Может можно расположить mysql сервер в облаке, так будет побыстрее? И как-нибудь распараллелить этот процесс. Подскажите пожалуйста способы ускорить всё это. И расскажите, пожалуйста, про то, какие именно параметры (CPU, RAM, DISK) в приоритете влияют на быстроту записи в mysql?

P.S. Мой вопрос не касается того как оптимизировать sql запрос.
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
Decadal
@Decadal
вы можете сделать параметры в своем скрипте вроде --offset 0 --max 10000
потом запустить несколько скриптов параллельно с разными параметрами, чтобы они не пересекались (т.е. чтобы скрипты работали с разными данными)
вот вам бюджетный параллелизм
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
serginhold
@serginhold
есть такое https://dev.mysql.com/doc/refman/5.7/en/load-xml.html

или можно на два этапа разделить
1. конвертнуть xml в csv, заодно отбросить лишний поля
2. https://dev.mysql.com/doc/refman/5.7/en/load-data.html
Ответ написан
Комментировать
@vovik64
часто проблема в индексах таблички.....убери индексы и создай их заново после импорта

потому что после каждой вставки переиндексация идет и если индексов несколько то соответственно и времени больше
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы