Schema-Based Sharding User Guide
Schema-Based Sharding User Guide
Overview
Schema-based sharding distributes data across nodes based on schema/tenant, enabling perfect data isolation and independent scaling per tenant.
Benefits
- Tenant isolation
- Independent scaling per schema
- Simple data locality
- Compliance-friendly
Configuration
sharding: strategy: schema_based schemas: tenant_a: node-1 tenant_b: node-2 tenant_c: node-3SQL Examples
-- Create sharded databaseCREATE DATABASE myapp WITH (sharding = 'schema_based');
-- Create tenant schemasCREATE SCHEMA tenant_123;CREATE SCHEMA tenant_456;
-- Assign to nodesSELECT heliosdb.assign_schema('tenant_123', 'node-1');SELECT heliosdb.assign_schema('tenant_456', 'node-2');
-- Query automatically routes to correct nodeSET search_path = tenant_123;SELECT * FROM users; -- Executes on node-1Use Cases
SaaS Multi-Tenancy
-- Each customer gets dedicated schemaCREATE SCHEMA customer_acme;CREATE SCHEMA customer_globex;
-- Data isolation guaranteedSET search_path = customer_acme;-- All queries operate only on customer_acme dataGeographic Sharding
-- Schema per regionCREATE SCHEMA us_east;CREATE SCHEMA eu_west;
SELECT heliosdb.assign_schema('us_east', 'us-east-1-node');SELECT heliosdb.assign_schema('eu_west', 'eu-west-1-node');Best Practices
- Plan schema distribution carefully
- Monitor per-schema resource usage
- Rebalance as tenants grow
- Use with row-level security
For more: /docs/architecture/schema-sharding.md