digital-garden/dev/database/Online Transaction Processing.md
Struchkov Mark d8d8e74b4a
All checks were successful
continuous-integration/drone/push Build is passing
Data Vault
2024-11-26 22:34:00 +03:00

38 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
aliases:
- OLTP
tags:
- maturity/🌱
date: 2024-03-31
---
OLTP (Online Transaction Processing) — это тип нагрузки, который характеризуется выполнением большого количества коротких транзакций, таких как операции вставки, обновления и удаления. OLTP-системы обычно используются для поддержки оперативной деятельности, где важна быстрая обработка данных.
**Особенности:**
- Множество маленьких и быстрых [[Транзакция БД|транзакций]].
- Частое выполнение операций `INSERT`, `UPDATE`, `DELETE`.
- Подавляющее большинство операций затрагивает только одну строку.
- Запросы должны выполняться максимально быстро.
- Высокая степень нормализации таблиц.
**Примеры задач:**
- Продажа товаров пользователям.
- Прием платежей за сотовую связь.
## Лучшие практики для оптимизации производительности
- **Использование индексов**: правильно настроенные [[Индекс базы данных|индексы]] позволяют быстрее выполнять операции и уменьшить количество операций чтения.
- [[../../../../_inbox/Шардирование БД|Шардинг]] (разделение таблиц): разделение таблиц на части снижает нагрузку и улучшает производительность.
- **Избегание блокировок**: минимизация блокировок таблиц и строк особенно важна при большом количестве параллельных транзакций.
- Для OLTP-нагрузки не следует использовать параллельное выполнение запросов, так как это забирает ядро процессора у другого запроса, что может привести к задержкам в обработке транзакций и снижению общей производительности системы. В контексте OLTP важнее минимизировать время выполнения каждого отдельного запроса, а не распределять его между несколькими ядрами. ==Каждый запрос должен выполняться на одном ядре как можно быстрее.==
- Не хранить данные, которые уже не нужны для бизнес-логики, а нужны только для [[Online Analytical Processing|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) -->