Struchkov Mark
c334cee3d8
All checks were successful
continuous-integration/drone/push Build is passing
47 lines
4.0 KiB
Markdown
47 lines
4.0 KiB
Markdown
---
|
||
tags:
|
||
- type/zero-link
|
||
parents:
|
||
- "[[00 Разработка]]"
|
||
- "[[../../dev/Тип хранилища данных|Тип хранилища данных]]"
|
||
aliases:
|
||
- база данных
|
||
- базу данных
|
||
- Реляционная база данных
|
||
- базами данных
|
||
linked:
|
||
- "[[../../../../_inbox/00 In-memory СуБД|00 In-memory СуБД]]"
|
||
---
|
||
- [Журнал БД](../../dev/database/Журнал%20БД.md)
|
||
- [Репликация БД](../../dev/architecture/highload/Репликация%20БД.md)
|
||
- [Резервные копии БД](Резервные%20копии%20БД.md)
|
||
- [[../../../../_inbox/Транзакция БД|Транзакция БД]]
|
||
- [[../../dev/database/Индекс базы данных|Индекс базы данных]]
|
||
- [[../../dev/database/postgresql/Индекс в PostgreSQL|Индекс в PostgreSQL]]
|
||
- [[../../../../_inbox/Индекс в MySQL|Индекс в MySQL]]
|
||
|
||
СуБД:
|
||
- [PostgreSQL](00%20PostgreSQL.md)
|
||
- [MySQL](00%20MySQL.md)
|
||
## Улучшение производительности
|
||
- [Репликация БД](../../dev/architecture/highload/Репликация%20БД.md)
|
||
- [Шардирование БД](../../../../_inbox/Шардирование%20БД.md)
|
||
|
||
- Выбирать правильный тип для колонки
|
||
- Денормализация
|
||
- Меньше индексов - лучше
|
||
- Меньше джойнов - лучше
|
||
|
||
Приложение работает неограниченное количество времени, с каждым днем количество данных в БД увеличивается. При возрастании объема запросы начинают отрабатывать медленнее, в таком случае возникает необходимость в применении [партиционирования](Партиционирование%20в%20БД.md) и [шардирования](../../../../_inbox/Шардирование%20БД.md).
|
||
|
||
- [Оптимизация SQL запросов](../../dev/database/Оптимизация%20SQL%20запросов.md)
|
||
|
||
## Заметки
|
||
- Классические СУБД хранят данные в двух местах: на диске и в памяти.
|
||
- [[../../dev/database/DB page|Страница БД]] модифицируется сначала в оперативной памяти, потом попадает на диск.
|
||
- ![](Pasted%20image%2020240531082744.png)
|
||
- Часто думают, что реляционная таблица — это массив. Некоторые даже думают, что это двумерный массив. На самом деле, это гораздо более сложная штука. Это мультимножество – набор определенного сорта кортежей, над которым не задано порядка. В SQL-таблице нет порядка. Это важно. И, как результат, когда вы делаете SELECT* из БД (просканировать все записи), результат выполнения запроса может меняться – строчки могут быть в одном порядке, а могут и в другом. Про это нужно помнить.
|
||
- Профиль нагрузки на реляционную базу данных выглядит следующим образом: 80% запросов это чтение, 20% запросов это запись. Если запросов на запись больше, то возможно реляционная база данных вам не подходит.
|
||
- Обычно в БД имеется планировщик выполнения запроса и executor. Планировщик обычно опирается на ранее собранную статистику выполнения запросов.
|
||
|