Когда Laravel Validator становится узким местом при импорте 50 000 строк

#Когда #Laravel #Validator #PostgreSQL #Проблема
Когда Laravel Validator становится узким местом при импорте 50 000 строк

PHP 7.4 / Laravel 8 / PostgreSQL 13 Проблема : импорт 50 тысяч строк занимал около 45 секунд. Первое подозрение: база данных, INSERT, UPSERT, индексы, размер batch и количество запросов. Реальность: бОльшая часть времени уходит на валидацию. Мы начали разбираться, почему проверка нескольких десятков обычных полей на большом массиве данных оказалась значительно дороже самой записи в PostgreSQL. В итоге удалось сократить время валидации с 42,5 секунды до 0,65 секунды , а длительность всего job — примерно с 45 до 4 секунд . В статье покажу, что именно оказалось узким местом, почему стандартный Laravel Validator оказался не самым подходящим инструментом для этого конкретного сценария и почему мы не стали от него отказываться. Читать далее

PHP 7.4 / Laravel 8 / PostgreSQL 13

Проблема: импорт 50 тысяч строк занимал около 45 секунд.

Первое подозрение: база данных, INSERT, UPSERT, индексы, размер batch и количество запросов.

Реальность: бОльшая часть времени уходит на валидацию.