领域
Database Management
技能档案
Horizontal and vertical sharding, shard key selection, consistent hashing, cross-shard queries, resharding strategies
角色数
9
包含此技能的角色
级别数
5
结构化成长路径
必要要求
25
其余 20 个可选
Database Management
Database Optimization
2026/3/17
选择当前级别并对比期望。下方卡片显示晋升所需掌握的内容。
表格展示从初级到首席的技能深度变化。点击行查看详情。
| 角色 | 必要性 | 描述 |
|---|---|---|
| Backend Developer (C#/.NET) | Understands sharding in .NET: knows how to configure multiple DbContext for different database connections, understands Elastic Database Tools for Azure SQL. Can work with applications where data is distributed across multiple databases. | |
| Backend Developer (Elixir) | Understands sharding in Elixir: knows how Ecto supports multiple repos, understands that BEAM distribution can replace database sharding for some use cases. Can work with multi-repo Ecto configuration. | |
| Backend Developer (Go) | Understands the fundamentals of Database Sharding. Applies basic practices in daily work. Follows recommendations from the team and documentation. | |
| Backend Developer (Java/Kotlin) | Understands sharding in Java context: knows how DataSource routing works in Spring, distinguishes logical and physical sharding. Can work with applications on ShardingSphere or custom routing without deep internals understanding. | |
| Backend Developer (Node.js) | Understands sharding concept in Node.js: knows how to connect to multiple DBs via different connection strings, understands shard key routing principle. Can work with applications using sharded MongoDB (native sharding). | |
| Backend Developer (PHP) | Understands sharding in PHP context: knows why data needs to be split across multiple DB servers, can connect to different databases in Laravel/Symfony. Understands the main limitations of sharding for PHP applications. | |
| Backend Developer (Python) | Understands database sharding concept: knows why horizontal data partitioning is needed, difference between vertical and horizontal sharding. Can work with applications using sharded databases, executing queries against specific shards. | |
| Backend Developer (Rust) | Understands sharding in the Rust context: knows how to manage multiple database connections through sqlx or diesel, understands shard key selection principles. Can work with Rust applications using multiple database pools. | |
| Backend Developer (Scala) | Understands sharding in Scala ecosystem: knows how Akka Cluster Sharding works for in-memory data, distinguishes database sharding and actor sharding. Can work with Slick/Quill with multiple database configurations. |
| 角色 | 必要性 | 描述 |
|---|---|---|
| Backend Developer (C#/.NET) | 必要 | Works with sharded databases in .NET: uses Elastic Database Client Library for Azure SQL sharding, implements tenant-based routing via IDbContextFactory, configures EF Core with dynamic connection strings. Applies Unit of Work pattern for shard-aware transactions. |
| Backend Developer (Elixir) | 必要 | Works with sharding in Elixir: implements dynamic Ecto.Repo selection through custom middleware, applies consistent hashing through :erlang.phash2 for shard routing, configures per-shard connection pooling through DBConnection. Handles cross-shard queries through Task.async_stream. |
| Backend Developer (Go) | 必要 | Works with sharded databases in Go: implements shard-aware repository layer with connection pooling per shard, applies consistent hashing for data distribution, handles cross-shard queries via scatter-gather pattern. Uses context for shard info propagation. |
| Backend Developer (Java/Kotlin) | 必要 | Works with sharding in Java: implements AbstractRoutingDataSource for multi-database routing, uses ShardingSphere for transparent sharding, configures HikariCP connection pools per shard. Applies thread-local context for shard selection in Spring transactions. |
| Backend Developer (Node.js) | 必要 | Works with sharded databases in Node.js: implements application-level sharding with Knex/Prisma via dynamic connection selection, configures MongoDB sharding with shard key selection, applies connection pooling per shard. Handles cross-shard queries via Promise.all scatter-gather. |
| Backend Developer (PHP) | 必要 | Works with sharding in PHP: implements multi-tenant database routing in Laravel via database resolver, configures Doctrine DBAL with multiple connections, applies shard selection middleware. Uses ProxySQL for transparent routing at DB level. |
| Backend Developer (Python) | 必要 | Works with sharded databases in Python: uses Django database routers for multi-database routing, implements shard selection logic based on tenant_id or user_id. Understands sharding trade-offs: cross-shard queries, join limitations, data distribution skew. |
| Backend Developer (Rust) | 必要 | Implements sharding in Rust: creates shard-aware connection pool manager, implements consistent hashing with jump hash or rendezvous hashing, handles cross-shard queries through async scatter-gather with tokio. Uses Rust type system for compile-time shard routing safety. |
| Backend Developer (Scala) | 必要 | Works with sharding in Scala: implements database routing through custom Slick DatabaseProvider, uses Akka Cluster Sharding for distributed entity management. Applies functional programming patterns (Reader monad) for shard-aware data access. |
| 角色 | 必要性 | 描述 |
|---|---|---|
| Backend Developer (C#/.NET) | 必要 | Designs sharding for .NET microservices: implements custom shard router with consistent hashing, configures cross-shard queries via Elastic Query (Azure SQL) or custom scatter-gather, designs resharding with zero-downtime. Optimizes connection pooling for hundreds of shards. |
| Backend Developer (Elixir) | 必要 | Designs sharding for Elixir systems: implements custom Ecto adapter for transparent sharding, designs resharding with GenServer-based coordinator, uses BEAM distribution as "shards" for stateful data in ETS/Mnesia. Optimizes connection management through database proxy (PgBouncer). |
| Backend Developer (Go) | 必要 | Designs sharding for Go microservices: develops sharding middleware with pluggable shard key strategies, implements online resharding with dual-write pattern, configures Vitess integration for Go applications. Optimizes connection management for 100+ shards via pgbouncer/ProxySQL. |
| Backend Developer (Java/Kotlin) | 必要 | Designs sharding for Java microservices: configures ShardingSphere with custom sharding algorithms, implements distributed transactions via XA or eventual consistency patterns, designs global tables for reference data. Optimizes cross-shard pagination and sorting. |
| Backend Developer (Node.js) | 必要 | Designs sharding for Node.js services: implements custom sharding proxy via Node.js streams, configures PostgreSQL sharding via Citus extension, designs resharding pipelines with Node.js worker threads. Optimizes connection management for high shard count with pgBouncer. |
| Backend Developer (PHP) | 必要 | Designs sharding strategy for PHP systems: implements consistent hashing for shard distribution, designs resharding with zero-downtime via dual-write pattern, configures Vitess for transparent MySQL sharding. Solves cross-shard reporting problems via materialized views or ETL. |
| Backend Developer (Python) | 必要 | Designs sharding strategy for Python systems: selects shard key considering access patterns and data distribution, implements consistent hashing for balancing, designs cross-shard query aggregation. Configures Vitess or ProxySQL for transparent PostgreSQL/MySQL sharding. |
| Backend Developer (Rust) | 必要 | Designs high-performance sharding in Rust: implements custom sharding proxy with zero-copy routing, optimizes connection management through connection pooling with async traits, designs online resharding through dual-write with async verification. Benchmarks shard router performance. |
| Backend Developer (Scala) | 必要 | Designs sharding for Scala microservices: integrates Akka Cluster Sharding with persistent storage, implements cross-shard queries through Akka Streams, configures Cassandra data modeling with partition key design for natural sharding. Optimizes data locality for co-located processing. |
| 角色 | 必要性 | 描述 |
|---|---|---|
| Backend Developer (C#/.NET) | 必要 | Standardizes sharding in .NET ecosystem: creates NuGet packages for standard sharding setup, designs migration tooling for per-shard schema management, implements health monitoring and auto-rebalancing. Determines when Cosmos DB partitioning vs SQL sharding. |
| Backend Developer (Elixir) | Defines data architecture for the Elixir platform: standardizes sharding approaches through Hex packages, designs hybrid architecture (BEAM distribution for hot data + PostgreSQL sharding for cold data). Defines monitoring and auto-rebalancing strategy for shards. | |
| Backend Developer (Go) | 必要 | Defines sharding strategy for the Go platform: standardizes sharding patterns via internal library, designs monitoring for shard balance and hotspot detection, develops automated resharding pipelines. Defines data placement strategy considering latency and availability. |
| Backend Developer (Java/Kotlin) | 必要 | Standardizes sharding in Java ecosystem: chooses between ShardingSphere, Vitess, and application-level sharding, designs online resharding pipelines with Spring Batch, implements shard health monitoring and alerting. Creates internal frameworks for standardizing sharding patterns. |
| Backend Developer (Node.js) | 必要 | Defines sharding strategy for Node.js platform: standardizes sharding patterns via npm packages, designs monitoring and alerting for shard health, develops automated testing for sharded scenarios. Defines data placement strategy considering Node.js event loop model. |
| Backend Developer (PHP) | Standardizes sharding in the PHP ecosystem: creates Composer packages for standard sharding setup, designs migration tools for per-shard schema management, implements monitoring for shard health and balance. Defines resharding strategy for growing PHP projects. | |
| Backend Developer (Python) | 必要 | Defines sharding strategy at platform level: designs resharding procedures with zero-downtime, implements shard health and data distribution monitoring, standardizes cross-shard consistency approaches. Determines when sharding is necessary vs other scaling approaches. |
| Backend Developer (Rust) | 必要 | Defines sharding strategy for Rust platform: creates internal sharding crate with pluggable strategies and monitoring, designs distributed transaction coordination through 2PC or saga. Standardizes testing for sharded scenarios through TestContainers and property-based tests. |
| Backend Developer (Scala) | 必要 | Standardizes sharding in Scala ecosystem: defines when to use Akka Cluster Sharding vs database-native sharding, designs data placement strategy for distributed Scala systems. Creates abstractions for transparent sharding with type-safe shard key definitions. |
| 角色 | 必要性 | 描述 |
|---|---|---|
| Backend Developer (C#/.NET) | Shapes enterprise data sharding strategy for .NET: designs multi-cloud sharding (Azure SQL + Cosmos DB + on-premise), defines data sovereignty requirements. Influences choice between custom sharding, managed sharding (Azure Elastic) and globally distributed databases (Cosmos DB, CockroachDB). | |
| Backend Developer (Elixir) | Shapes data strategy for large-scale Elixir systems: designs multi-layer data architecture with BEAM clustering + database sharding + object storage, defines consistency guarantees for different data tiers. Influences Elixir database ecosystem and distributed state management approaches. | |
| Backend Developer (Go) | Shapes data architecture with sharding for large-scale Go systems: designs multi-tenant sharding with per-tenant isolation levels, defines architecture for petabyte-scale data. Influences strategy choice: custom sharding vs managed solutions (Vitess, CockroachDB, Spanner). | |
| Backend Developer (Java/Kotlin) | Shapes enterprise data sharding strategy: designs multi-tier sharding (application sharding + database sharding), defines architecture for global-scale Java systems with sharding. Influences choice between ShardingSphere, Vitess, CockroachDB and Google Spanner for different use cases. | |
| Backend Developer (Node.js) | Shapes data architecture for large-scale Node.js systems: determines when application-level sharding vs database-native sharding (Citus, Vitess, MongoDB), designs multi-region data placement. Influences architectural decisions on data layer choice for petabyte-scale Node.js applications. | |
| Backend Developer (PHP) | Shapes data architecture for large-scale PHP systems: determines when to shard vs migrate to distributed database, designs hybrid architecture (sharded MySQL + Redis cluster + Elasticsearch). Influences long-term data storage strategy considering PHP limitations. | |
| Backend Developer (Python) | Shapes data architecture strategy with sharding: designs multi-region sharding with geo-routing, defines approaches for data locality and compliance (GDPR). Influences choice between application-level sharding, database-native sharding (Citus, Vitess), and NewSQL (CockroachDB, TiDB). | |
| Backend Developer (Rust) | Shapes Rust data layer architecture for extreme-scale systems: designs custom distributed database layer with sharding, defines trade-offs between consistency and performance for different shard topologies. Influences open-source Rust database ecosystem through contributions to foundationdb-rs, tikv and similar projects. | |
| Backend Developer (Scala) | Shapes data architecture for distributed Scala systems: designs multi-layer sharding (Akka Cluster + database + geographic), defines consistency model for cross-shard operations. Influences architectural decisions on adopting distributed databases (Cassandra, CockroachDB) vs custom sharding in Scala. |