--- tags: - type/zero-link parents: - "[[../../garden/ru/meta/zero/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 запросов](_inbox/Производительность%20SQL%20запросов.md)