diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index 85dc5314..8eb5f4aa 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -23,6 +23,18 @@ "markdownOnly": false, "unresolvedLinks": false, "recentFilesStore": [ + { + "filepath": "_inbox/Шардирование в БД.md", + "timestamp": 1720974487488 + }, + { + "filepath": "wiki/zero/00 Базы Данных.md", + "timestamp": 1720974391295 + }, + { + "filepath": "Home.md", + "timestamp": 1720974288934 + }, { "filepath": "wiki/zero/00 SQL.md", "timestamp": 1720974288072 diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index c548d2ce..48c6e58e 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -1,5 +1,17 @@ { "recentFiles": [ + { + "basename": "Шардирование в БД", + "path": "_inbox/Шардирование в БД.md" + }, + { + "basename": "00 Базы Данных", + "path": "wiki/zero/00 Базы Данных.md" + }, + { + "basename": "Home", + "path": "Home.md" + }, { "basename": "00 SQL", "path": "wiki/zero/00 SQL.md" @@ -8,18 +20,10 @@ "basename": "Производительность SQL запросов", "path": "Производительность SQL запросов.md" }, - { - "basename": "00 Базы Данных", - "path": "wiki/zero/00 Базы Данных.md" - }, { "basename": "Партиционирование в БД", "path": "_inbox/Партиционирование в БД.md" }, - { - "basename": "Шардирование в БД", - "path": "_inbox/Шардирование в БД.md" - }, { "basename": "Explain в PostgreSQL", "path": "_inbox/Explain в PostgreSQL.md" @@ -44,10 +48,6 @@ "basename": "Партиционирование в PostgreSQL", "path": "_inbox/Партиционирование в PostgreSQL.md" }, - { - "basename": "Home", - "path": "Home.md" - }, { "basename": "2024-07-13 1720855435", "path": "_inbox/2024-07-13 1720855435.md" diff --git a/_inbox/Шардирование в БД.md b/_inbox/Шардирование в БД.md index 04316609..8cbd237f 100644 --- a/_inbox/Шардирование в БД.md +++ b/_inbox/Шардирование в БД.md @@ -49,13 +49,13 @@ linked: - Держать нужные данные на одном шарде - Делать вычисления в одном сервисе -Стратегии разбиения на шарды +Обычно для распределения по шардам ввыбирается какой-то признак. Наиболее популярные стратегии распределения данных по шардам: - [Key Based Sharding](Key%20Based%20Sharding.md). Наиболее распространенный способ. - [Range Base Sharding](Range%20Base%20Sharding.md). - [Directory Based Sharding](Directory%20Based%20Sharding.md) - [Consistent hashing](Consistent%20hashing.md). Уменьшает боль от [решардинга](Решардинг.md) -Роутинг на шарды: +Как направлять на шарды: - Умный клиент. Приложение само решает в какой шард идти - Нет дополнительной точки отказа. Нет лишнего хопа. - Как обновлять при изменении количества шардов? diff --git a/wiki/zero/00 Базы Данных.md b/wiki/zero/00 Базы Данных.md index e19b1223..1bdf30c9 100644 --- a/wiki/zero/00 Базы Данных.md +++ b/wiki/zero/00 Базы Данных.md @@ -23,6 +23,9 @@ aliases:  - Часто думают, что реляционная таблица — это массив. Некоторые даже думают, что это двумерный массив. На самом деле, это гораздо более сложная штука. Это мультимножество – набор определенного сорта кортежей, над которым не задано порядка. В SQL-таблице нет порядка. Это важно. И, как результат, когда вы делаете SELECT* из БД (просканировать все записи), результат выполнения запроса может меняться – строчки могут быть в одном порядке, а могут и в другом. Про это нужно помнить.  - Профиль нагрузки на реляционную базу данных выглядит следующим образом: 80% запросов это чтение, 20% запросов это запись. Если запросов на запись больше, то возможно реляционная база данных вам не подходит. ## Улучшение производительности +- [Репликация БД](Репликация%20БД.md) +- [Шардирование в БД](Шардирование%20в%20БД.md) + - Выбирать правильный тип для колонки - Денормализация - Меньше индексов - лучше