digital-garden/meta/zero/00 Базы Данных.md

44 lines
3.8 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.

---
tags:
- type/zero-link
parents:
- "[[00 Разработка]]"
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. Планировщик обычно опирается на ранее собранную статистику выполнения запросов.