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

36 lines
3.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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:
- база данных
- базу данных
---
- [Журнал БД](Журнал%20БД.md)
- [Репликация БД](Репликация%20БД.md)
- [Резервные копии БД](Резервные%20копии%20БД.md)
- [Транзакция БД](Транзакция%20БД.md)
СуБД:
- [PostgreSQL](00%20PostgreSQL.md)
- [MySQL](00%20MySQL.md)
## Заметки
 - Память организована в виде страничек. Когда приходит какой-то запрос на обновление данных, страница модифицируется сначала в оперативной памяти, потом попадает на диск.
 - ![](Pasted%20image%2020240531082744.png)
 - Часто думают, что реляционная таблица — это массив. Некоторые даже думают, что это двумерный массив. На самом деле, это гораздо более сложная штука. Это мультимножество набор определенного сорта кортежей, над которым не задано порядка. В SQL-таблице нет порядка. Это важно. И, как результат, когда вы делаете SELECT* из БД (просканировать все записи), результат выполнения запроса может меняться строчки могут быть в одном порядке, а могут и в другом. Про это нужно помнить.
 - Профиль нагрузки на реляционную базу данных выглядит следующим образом: 80% запросов это чтение, 20% запросов это запись. Если запросов на запись больше, то возможно реляционная база данных вам не подходит.
## Улучшение производительности
- [Репликация БД](Репликация%20БД.md)
- [Шардирование в БД](Шардирование%20в%20БД.md)
- Выбирать правильный тип для колонки
- Денормализация
- Меньше индексов - лучше
- Меньше джойнов - лучше
Приложение работает неограниченное количество времени, с каждым днем количество данных в БД увеличивается. При возрастании объема запросы начинают отрабатывать медленнее, в таком случае возникает необходимость в применении [партиционирования](Партиционирование%20в%20БД.md) и [шардирования](Шардирование%20в%20БД.md).
- [Производительность SQL запросов](Производительность%20SQL%20запросов.md)