TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #6290 2.19K
How to: масштабировать до миллиарда документов в Symfony

Цены на бензин меняются по несколько раз в день. В итоге получается адский датасет: десятки гигабайт CSV и сотни тысяч записей цен за сутки. Если грузить это «как в SQL» (по документу на каждую цену), MongoDB быстро превращается в кладбище индексов и медленных агрегаций.

Как делают по-взрослому: сначала разбираем структуру данных (станции отдельно, цены отдельно), потом проектируем схему под запросы. Главный трюк — bucket pattern: складывать цены не по одной записи, а «ведрами» по станция + тип топлива + день, внутри хранить массив цен за день. Так документов становится в разы меньше, а дневные графики и «последнюю цену» можно доставать быстро.

Дальше — импорт не через «всё в память», а по дням: читаем CSV → временная коллекция → агрегация в bucket-документы → добавляем экстремумы (min/max) и предагрегаты (средние) → подтягиваем данные станции и денормализуем только то, что реально нужно.

👉 Читать статью
  • 🌚 1
More from @phpproglib
  1. Sep 23, 2026🚀 Свежий релиз Laravel 13 с набором улучшений и исправлений ✅ добавлена поддержка valkey:…
  2. Sep 21, 2026⚡️ PHP 8.6 выйдет 19 ноября 2026 года. Сейчас версия находится в beta. Самые заметные изме…
  3. Sep 20, 2026❓ Какие существуют проблемы в многопоточной среде? Основные проблемы многопоточности: 1️⃣…
  4. Sep 19, 2026🌞 В Symfony 8.2 появилось 29 новых Bundle — теперь компоненты вроде Mailer, Messenger и C…
  5. Sep 19, 2026А вы уже забрали свой подарок ко Дню программиста? К вашему профессиональному празднику Tp…
  6. Sep 18, 2026🐸 Библиотека пхпшника
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →