Робота з мільйонами SKU: оптимізація бази даних для e-commerce

Робота з мільйонами SKU: оптимізація бази даних для e-commerce

Сучасні маркетплейси й великі e-commerce проєкти оперують сотнями тисяч і навіть мільйонами товарів (SKU).
Без продуманої архітектури база даних швидко перетворюється на вузьке місце: пошук і фільтри сповільнюються, імпорти товарів «висять» годинами, а користувачі йдуть до конкурентів.

У цій статті розглянемо практики проєктування баз даних для великих e-commerce та маркетплейсів.


Основні виклики при роботі з великим каталогом

  1. Швидкість пошуку та фільтрації
    Користувачі очікують, що сторінки завантажаться за частки секунди навіть за 10+ млн товарів.

  2. Часті оновлення
    Ціни, залишки, статуси товарів змінюються тисячі разів на добу.
    Якщо імпорт даних триває годинами, це шкодить продажам і довірі користувачів.

  3. Велике навантаження на піках
    Наприклад, у Black Friday або під час розпродажів сайт отримує тисячі запитів на секунду.

  4. Аналітика та рекомендації
    Необхідно швидко будувати добірки товарів, персоналізувати каталог і не гальмувати фронтенд.


Архітектурні підходи

1. Поділ баз даних за ролями

  • OLTP (MySQL, PostgreSQL) для роботи з замовленнями, кошиком і швидкими операціями.

  • OLAP / Data Warehouse (ClickHouse, BigQuery, Snowflake) для аналітики й прогнозів.

2. Денормалізація та окремі індекси

  • Для фільтрів (категорія, бренд, ціна) краще тримати ключові поля прямо в таблиці товарів.

  • Використовувати GIN / B-tree індекси та JSONB для гнучких характеристик.

3. Розподіл даних

  • Шардінг — розділення товарів за категоріями, країнами чи регіонами.

  • Це дозволяє масштабувати базу горизонтально без перевантаження однієї машини.

4. Кешування

  • Redis / Memcached для зберігання популярних сторінок та запитів.

  • Elasticsearch або OpenSearch для швидкого пошуку по каталогу.

5. Асинхронні процеси

  • Імпорт, синхронізацію цін і залишків варто виносити в черги (Kafka, RabbitMQ, Laravel Horizon).

  • Так користувачі не чекають завершення операцій у реальному часі.


Світові приклади

  • Amazon
    Має понад 350 млн SKU. Застосовує власні розподілені сховища (DynamoDB, S3) та кеші для пошуку й рекомендацій у реальному часі.

  • Walmart
    Використовує комбінацію Hadoop, Spark і Cassandra для обробки даних і формування персоналізованих добірок товарів навіть під час пікових навантажень.

  • eBay
    Перейшов від монолітної MySQL-бази до шардованої архітектури та інтегрував Cassandra і Kafka для масштабування та швидкої синхронізації товарів між сервісами.

  • Zalando
    Для пошуку та фільтрації використовує Elasticsearch із денормалізованими даними, а для аналітики — Snowflake і внутрішні стрімінгові сервіси.

  • Shopee (Південно-Східна Азія)
    Масштабує каталог за допомогою мікросервісної архітектури та індексів у Redis, що дозволяє витримувати тисячі одночасних пошукових запитів.


Практичні рекомендації

  1. Проектуйте структуру бази ще до старту — це в рази дешевше, ніж рефакторинг у продакшні.

  2. Використовуйте індекси й оптимізуйте складні JOIN-запити.

  3. Розділяйте операційні та аналітичні дані — це прискорює обидва напрямки.

  4. Передбачайте автоматичне горизонтальне масштабування.

  5. Використовуйте моніторинг і алерти (Grafana, Prometheus) для відстеження пікових навантажень.


Висновок

Оптимізація бази даних — один із ключових етапів побудови масштабованого e-commerce.
Саме вона визначає, наскільки швидко сайт реагує на запити користувачів і чи витримає він навантаження у моменти пікових продажів.

Якщо ви плануєте масштабувати свій маркетплейс або працювати з каталогами у мільйони товарів — почніть із правильної архітектури бази даних і підбору технологій.

Поділитися
У пошуках підрядника з розробки сайту?
Заходьте до нашого online каталогу Веб-студій та вибирайте партнера за рядом критеріїв: бал, портфоліо, відгуки, кейси та статті. Або організуйте тендер в даному каталозі, вибравши компанії, що вам сподобалися.
Більше не потрібно шукати та обдзвонювати діджитал-агентства!
Створіть тендер та отримайте пропозиції від найкращих веб-студій України.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.
Створити тендер
Bug