Профиль навыка

Шардирование БД

Горизонтальное и вертикальное шардирование, shard key selection, consistent hashing, cross-shard queries, resharding strategies

Базы данных Оптимизация БД

Ролей

9

где встречается этот навык

Грейдов

5

сформированная дорожка роста

Обязательных требований

25

ещё 20 — необязательные

Домен

Базы данных

Группа

Оптимизация БД

Последнее обновление

17.03.2026

Как использовать

Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.

Чего ждут на каждом уровне

Таблица показывает, как меняется глубина владения навыком от Junior до Principal.

Роль Обязательность Описание
Backend Developer (C#/.NET) Понимает шардирование в .NET: знает как настроить multiple DbContext для разных database connections, понимает Elastic Database Tools для Azure SQL. Способен работать с приложением где данные распределены по нескольким databases.
Backend Developer (Elixir) Понимает шардирование в Elixir: знает как Ecto поддерживает multiple repos, понимает что BEAM distribution может заменить database sharding для некоторых use cases. Способен работать с multi-repo Ecto configuration.
Backend Developer (Go) Понимает основы шардирования в Go: знает как connection pool управляет подключениями к нескольким шардам, умеет работать с multi-database конфигурацией через database/sql. Понимает принцип выбора шарда по ключу.
Backend Developer (Java/Kotlin) Понимает шардирование в Java-контексте: знает как DataSource routing работает в Spring, различает logical и physical sharding. Способен работать с приложением на ShardingSphere или custom routing без глубокого понимания internals.
Backend Developer (Node.js) Понимает концепцию шардирования в Node.js: знает как подключаться к нескольким БД через разные connection strings, понимает принцип routing по shard key. Способен работать с приложением которое использует шардированную MongoDB (native sharding).
Backend Developer (PHP) Понимает шардирование в контексте PHP: знает зачем нужно разделять данные по нескольким БД-серверам, умеет подключаться к разным databases в Laravel/Symfony. Понимает основные ограничения шардирования для PHP-приложений.
Backend Developer (Python) Понимает концепцию шардирования БД: знает зачем нужно горизонтальное разделение данных, разницу между вертикальным и горизонтальным шардированием. Способен работать с приложением которое использует шардированную БД, выполняя запросы к конкретному шарду.
Backend Developer (Rust) Понимает шардирование в контексте Rust: знает как управлять multiple database connections через sqlx или diesel, понимает принципы выбора shard key. Способен работать с Rust-приложением использующим несколько database pools.
Backend Developer (Scala) Понимает шардирование в Scala-экосистеме: знает как Akka Cluster Sharding работает для in-memory данных, различает database sharding и actor sharding. Способен работать с Slick/Quill с multiple database configurations.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Работает с шардированными БД в .NET: использует Elastic Database Client Library для Azure SQL sharding, реализует tenant-based routing через IDbContextFactory, настраивает EF Core с dynamic connection strings. Применяет Unit of Work pattern для shard-aware transactions.
Backend Developer (Elixir) Обязателен Работает с шардированием в Elixir: реализует dynamic Ecto.Repo selection через custom middleware, применяет consistent hashing через :erlang.phash2 для shard routing, настраивает connection pooling per shard через DBConnection. Обрабатывает cross-shard queries через Task.async_stream.
Backend Developer (Go) Обязателен Работает с шардированными БД в Go: реализует shard-aware repository layer с connection pooling per shard, применяет consistent hashing для распределения данных, обрабатывает cross-shard queries через scatter-gather pattern. Использует context для propagation shard info.
Backend Developer (Java/Kotlin) Обязателен Работает с шардированием в Java: реализует AbstractRoutingDataSource для multi-database routing, использует ShardingSphere для transparent sharding, настраивает HikariCP connection pools per shard. Применяет thread-local context для shard selection в Spring transactions.
Backend Developer (Node.js) Обязателен Работает с шардированными БД в Node.js: реализует application-level sharding с Knex/Prisma через dynamic connection selection, настраивает MongoDB sharding с выбором shard key, применяет connection pooling per shard. Обрабатывает cross-shard queries через Promise.all scatter-gather.
Backend Developer (PHP) Обязателен Работает с шардированием в PHP: реализует multi-tenant database routing в Laravel через database resolver, настраивает Doctrine DBAL с multiple connections, применяет shard selection middleware. Использует ProxySQL для transparent routing на уровне БД.
Backend Developer (Python) Обязателен Работает с шардированными БД в Python: использует Django database routers для multi-database routing, реализует shard selection logic на основе tenant_id или user_id. Понимает trade-offs шардирования: cross-shard queries, join limitations, data distribution skew.
Backend Developer (Rust) Обязателен Реализует шардирование в Rust: создает shard-aware connection pool manager, реализует consistent hashing с jump hash или rendezvous hashing, обрабатывает cross-shard queries через async scatter-gather с tokio. Использует Rust type system для compile-time shard routing safety.
Backend Developer (Scala) Обязателен Работает с шардированием в Scala: реализует database routing через custom Slick DatabaseProvider, использует Akka Cluster Sharding для distributed entity management. Применяет functional programming patterns (Reader monad) для shard-aware data access.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Проектирует шардирование для .NET микросервисов: реализует custom shard router с consistent hashing, настраивает cross-shard queries через Elastic Query (Azure SQL) или custom scatter-gather, проектирует resharding с zero-downtime. Оптимизирует connection pooling для сотен шардов.
Backend Developer (Elixir) Обязателен Проектирует шардирование для Elixir-систем: реализует custom Ecto adapter для transparent sharding, проектирует resharding с GenServer-based coordinator, использует BEAM distribution для в виде «шардов» для stateful данных в ETS/Mnesia. Оптимизирует connection management через database proxy (pgBouncer).
Backend Developer (Go) Обязателен Проектирует шардирование для Go-микросервисов: разрабатывает sharding middleware с pluggable shard key strategies, реализует online resharding с dual-write pattern, настраивает Vitess интеграцию для Go-приложений. Оптимизирует connection management для 100+ шардов через pgbouncer/ProxySQL.
Backend Developer (Java/Kotlin) Обязателен Проектирует шардирование для Java-микросервисов: настраивает ShardingSphere с custom sharding algorithms, реализует distributed transactions через XA или eventual consistency patterns, проектирует global tables для справочных данных. Оптимизирует cross-shard pagination и sorting.
Backend Developer (Node.js) Обязателен Проектирует шардирование для Node.js сервисов: реализует custom sharding proxy через Node.js streams, настраивает PostgreSQL sharding через Citus extension, проектирует resharding pipelines с Node.js worker threads. Оптимизирует connection management для высокого числа шардов с pgBouncer.
Backend Developer (PHP) Обязателен Проектирует стратегию шардирования для PHP-систем: реализует consistent hashing для shard distribution, проектирует resharding с zero-downtime через dual-write pattern, настраивает Vitess для transparent MySQL sharding. Решает проблемы cross-shard reporting через materialized views или ETL.
Backend Developer (Python) Обязателен Проектирует стратегию шардирования для Python-систем: выбирает shard key с учётом access patterns и data distribution, реализует consistent hashing для балансировки, проектирует cross-shard query aggregation. Настраивает Vitess или ProxySQL для transparent sharding PostgreSQL/MySQL.
Backend Developer (Rust) Обязателен Проектирует высокопроизводительное шардирование на Rust: реализует custom sharding proxy с zero-copy routing, оптимизирует connection management через connection pooling с async traits, проектирует online resharding через dual-write с async verification. Бенчмаркит shard router performance.
Backend Developer (Scala) Обязателен Проектирует шардирование для Scala-микросервисов: интегрирует Akka Cluster Sharding с persistent storage, реализует cross-shard queries через Akka Streams, настраивает Cassandra data modeling с partition key design для natural sharding. Оптимизирует data locality для co-located processing.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Стандартизирует шардирование в .NET экосистеме: создает NuGet-пакеты для стандартного sharding setup, проектирует migration tooling для per-shard schema management, внедряет health monitoring и auto-rebalancing. Определяет когда Cosmos DB partitioning vs SQL sharding.
Backend Developer (Elixir) Определяет data architecture для Elixir-платформы: стандартизирует подходы к шардированию через Hex packages, проектирует гибридную архитектуру (BEAM distribution для hot data + PostgreSQL sharding для cold data). Определяет monitoring и auto-rebalancing strategy для шардов.
Backend Developer (Go) Обязателен Определяет шардирование-стратегию для Go-платформы: стандартизирует sharding patterns через internal library, проектирует monitoring для shard balance и hotspot detection, разрабатывает automated resharding pipelines. Определяет data placement strategy с учётом latency и availability.
Backend Developer (Java/Kotlin) Обязателен Стандартизирует шардирование в Java-экосистеме: выбирает между ShardingSphere, Vitess и application-level sharding, проектирует online resharding pipelines с Spring Batch, внедряет monitoring и alerting для shard health. Создает internal frameworks для стандартизации sharding patterns.
Backend Developer (Node.js) Обязателен Определяет шардирование-стратегию для Node.js платформы: стандартизирует sharding patterns через npm packages, проектирует monitoring и alerting для shard health, разрабатывает automated testing для sharded scenarios. Определяет data placement strategy с учётом Node.js event loop модели.
Backend Developer (PHP) Стандартизирует шардирование в PHP-экосистеме: создает Composer-пакеты для стандартного sharding setup, проектирует migration tools для per-shard schema management, внедряет monitoring для shard health и balance. Определяет стратегию resharding для растущих PHP-проектов.
Backend Developer (Python) Обязателен Определяет стратегию шардирования на уровне платформы: проектирует resharding процедуры с zero-downtime, внедряет мониторинг shard health и data distribution, стандартизирует подходы к cross-shard consistency. Определяет когда шардирование необходимо vs другие подходы к масштабированию.
Backend Developer (Rust) Обязателен Определяет шардирование-стратегию для Rust-платформы: создает internal sharding crate с pluggable strategies и monitoring, проектирует distributed transaction coordination через 2PC или saga. Стандартизирует testing для sharded scenarios через TestContainers и property-based tests.
Backend Developer (Scala) Обязателен Стандартизирует шардирование в Scala-экосистеме: определяет когда использовать Akka Cluster Sharding vs database-native sharding, проектирует data placement strategy для distributed Scala-систем. Создает abstractions для transparent sharding с type-safe shard key definitions.
Роль Обязательность Описание
Backend Developer (C#/.NET) Формирует enterprise data sharding стратегию для .NET: проектирует multi-cloud шардирование (Azure SQL + Cosmos DB + on-premise), определяет data sovereignty requirements. Влияет на выбор между custom sharding, managed sharding (Azure Elastic) и globally distributed databases (Cosmos DB, CockroachDB).
Backend Developer (Elixir) Формирует data strategy для масштабных Elixir-систем: проектирует multi-layer data architecture с BEAM clustering + database sharding + object storage, определяет consistency guarantees для разных data tiers. Влияет на развитие Elixir database ecosystem и подходов к distributed state management.
Backend Developer (Go) Формирует data architecture с шардированием для масштабных Go-систем: проектирует multi-tenant шардирование с per-tenant isolation уровни, определяет архитектуру для petabyte-scale данных. Влияет на выбор стратегии: custom sharding vs managed solutions (Vitess, CockroachDB, Spanner).
Backend Developer (Java/Kotlin) Формирует enterprise data sharding стратегию: проектирует multi-tier sharding (application sharding + database sharding), определяет архитектуру для global-scale Java-систем с шардированием. Влияет на выбор между ShardingSphere, Vitess, CockroachDB и Google Spanner для разных use cases.
Backend Developer (Node.js) Формирует data architecture для масштабных Node.js систем: определяет когда application-level sharding vs database-native sharding (Citus, Vitess, MongoDB), проектирует multi-region data placement. Влияет на архитектурные решения по выбору data layer для petabyte-scale Node.js приложений.
Backend Developer (PHP) Формирует data architecture для масштабных PHP-систем: определяет когда шардировать vs мигрировать на distributed database, проектирует гибридную архитектуру (sharded MySQL + Redis cluster + Elasticsearch). Влияет на долгосрочную стратегию хранения данных с учётом PHP-ограничений.
Backend Developer (Python) Формирует data architecture стратегию с шардированием: проектирует multi-region шардирование с geo-routing, определяет подходы для data locality и compliance (GDPR). Влияет на выбор между application-level sharding, database-native sharding (Citus, Vitess) и NewSQL (CockroachDB, TiDB).
Backend Developer (Rust) Формирует архитектуру data layer на Rust для extreme-scale систем: проектирует custom distributed database layer с sharding, определяет trade-offs между consistency и performance для разных shard topologies. Влияет на open-source Rust database ecosystem через вклад в foundationdb-rs, tikv и подобные проекты.
Backend Developer (Scala) Формирует data architecture для distributed Scala-систем: проектирует multi-layer sharding (Akka Cluster + database + geographic), определяет consistency model для cross-shard operations. Влияет на архитектурные решения по adoption distributed databases (Cassandra, CockroachDB) vs custom sharding в Scala.

Сообщество

👁 Следить ✏️ Предложить изменение Войдите, чтобы предлагать изменения
📋 Предложения
Пока нет предложений для Шардирование БД
Загрузка комментариев...