digital-garden/dev/database/Online Transaction Processing.md

38 lines
3.8 KiB
Markdown
Raw Normal View History

---
aliases:
- OLTP
tags:
- maturity/🌱
date: 2024-03-31
---
OLTP (Online Transaction Processing) — это тип нагрузки, который характеризуется выполнением большого количества коротких транзакций, таких как операции вставки, обновления и удаления. OLTP-системы обычно используются для поддержки оперативной деятельности, где важна быстрая обработка данных.
**Особенности:**
- Множество маленьких и быстрых [[Транзакция БД|транзакций]].
- Частое выполнение операций `INSERT`, `UPDATE`, `DELETE`.
- Подавляющее большинство операций затрагивает только одну строку.
- Запросы должны выполняться максимально быстро.
2024-11-25 18:27:25 +03:00
- Высокая степень нормализации таблиц
Примеры задач:
- Продажа товаров пользователям.
- Прием платежей за сотовую связь.
## Лучшие практики для оптимизации производительности
2024-10-25 21:35:39 +03:00
- **Использование индексов**: правильно настроенные [[Индекс базы данных|индексы]] позволяют быстрее выполнять операции и уменьшить количество операций чтения.
- [[../../../../_inbox/Шардирование БД|Шардинг]] (разделение таблиц): разделение таблиц на части снижает нагрузку и улучшает производительность.
- **Избегание блокировок**: минимизация блокировок таблиц и строк особенно важна при большом количестве параллельных транзакций.
- Для OLTP-нагрузки не следует использовать параллельное выполнение запросов, так как это забирает ядро процессора у другого запроса, что может привести к задержкам в обработке транзакций и снижению общей производительности системы. В контексте OLTP важнее минимизировать время выполнения каждого отдельного запроса, а не распределять его между несколькими ядрами. ==Каждый запрос должен выполняться на одном ядре как можно быстрее.==
2024-11-25 18:27:25 +03:00
- #idea Не хранить данные, которые уже не нужны для бизнес-логики, а нужны для OLAP. Попробовать переносить архивные данные в отдельную базу данных. Но возникает вопрос, а как объединять актуальные данные с архивными, чтобы отдавать их на фронт?
***
## Мета информация
**Область**:: [[../../meta/zero/00 Реляционная база данных|00 Реляционная база данных]]
**Родитель**::
**Источник**::
**Автор**::
**Создана**:: [[2024-03-31]]
### Дополнительные материалы
- [[Online Analytical Processing]]
### Дочерние заметки
<!-- QueryToSerialize: LIST FROM [[]] WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) -->