TypeScriptBackendDatabase

TypeORM и паттерн Unit of Work: оптимизация операций записи

·MAGMA

Что такое Unit of Work?

Unit of Work – это архитектурный шаблон проектирования, который используется во многих современных ORM-системах, включая TypeORM. Основная идея заключается в том, чтобы сгруппировать несколько операций сохранения данных в одну транзакцию или запрос.

Преимущества использования Unit of Work:

  • Оптимизация потока сохранений: Группировка запросов позволяет уменьшить нагрузку на базу данных за счет выполнения одной операции вместо нескольких отдельных.
  • Уменьшение времени отклика приложения: За счёт уменьшения количества обращений к базе данных приложение быстрее отвечает пользователю.
  • Поддержка многопоточности: Если операция не является транзакцией, можно использовать множественные подключения для параллельного выполнения операций.
  • Откат изменений при ошибке: При сбое процесса все изменения могут быть отменены, что предотвращает ненужные действия над базой данных.

Как реализовать Unit of Work в TypeORM?

Для реализации данного шаблона в TypeORM существует библиотека small-typeorm-persist-thread, которая предоставляет удобный способ работы с этим подходом. Она помогает организовать поток операций таким образом, чтобы они выполнялись эффективно и безопасно.

Установка библиотеки

npm install small-typeorm-persist-thread

После установки вы можете начать использовать библиотеку следующим образом:

typeormPersistThread.push(entity);
typeormPersistThread.flush(); // Выполняет все накопленные запросы одним действием

Таким образом, использование Unit of Work может значительно повысить производительность вашего приложения, особенно если оно выполняет большое количество операций записи.

Вернуться к блогу
Повышаем эффективность TypeORM с помощью Unit of Work — MAGMA