Задать вопрос
@querty

Требуется спарсить json в базу данных. Критична скорость. Какой язык и фрейворк выбрать?

Требуется спарсить json в базу данных. Данных много и критично чтобы этот json спарсился как можно быстрее. Какой язык и фреймворк выбрать?

Главное именно скорость парсинга.

Сейчас работает на php laravel и на php Yii 2 в базу mysql все сохраняют. Несколько разных парсеров.
И по-моему не самое быстрое решение. Посоветуйте варианты, пожалуйста.
  • Вопрос задан
  • 217 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 3
@rPman
Если тормозит json парсер:
- пишите сами, когда формат зафиксирован, можно обойтись регулярными выражениями, это чаще всего бывает отличным компромисом скорость разработки/выполнения, иначе пилите на c/c++ ковырялку посимвольную (не факт что у вас получится быстрее регулярных выражений).

- не пытайтесь одним выражением парсить всю строку, делите на части, чаще всего поиском подстроки/символа все делается.

- не собирайте данные промежуточно в ассоциативные массивы, отправляйте все сразу в sql запросы

Если тормозит запись в sql базу данных:

- отключайте транзакции или делайте их большими, собирая пакетом группу данных между begin .. comit

- отключайте индексы, иногда это дает огромный прирост скорости записи (включая foreign key), после окончания добавления данных вернете

- разместите временно файлы tablespace базы на максимально быстром диске, даже в ущерб надежности, например в оперативной памяти tmpfs/ramdisk (есть свои особенности, по умолчанию виртуалку оно не использует но под windows imdisk умеет), либо ищите где можно включить принудительный кеш на запись (это бывает не просто)

Позже, когда импорт базы закончится, остановите базу и перенесете файлы вручную, поменяв симлинки на каталоги
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Посмотрите в эту сторону
https://github.com/salsify/jsonstreamingparser

Кроме того смотрите в сторону техник пакетной вставки.
Ответ написан
Комментировать
@beduin01
Посмотрите вот тут https://github.com/libmir
Есть ряд очень полезны либ в том числе для JSON. Цитата оттуда:
"ASDF is fast. It can be really helpful if you have gigabytes of JSON line separated values."
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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