- Sometimes called data partitioning
- Splitting a database into two or more pieces called shards
- Typically done to increase throughput of your database
- Based on client's region
- Based on the type of data being stored
- E.g. user data gets stored in one shard, payments data on another, etc.
- Based on the hash of a column
- Only for structured data