> For the complete documentation index, see [llms.txt](https://liuzhenglaichn.gitbook.io/system-design/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://liuzhenglaichn.gitbook.io/system-design/basics/sharding-or-data-partitioning.md).

# Sharding or Data Partitioning

Important way to increase scalability:

* Horizontal Partition: split the same table across multiple servers, usually based on column
* Vertical Partition: store different tables in different servers.

![](https://1250864089-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M4Bkp-b8HYQgJF1rkOc%2F-M9pr7Y0j-DeaW8_aXlc%2F-M9pr_YJc1SMHj-xl6nb%2Fimage.png?alt=media\&token=42135e21-1e95-4b26-8ec7-b136508a77f3)

## Common problems of Sharding

### Joins and Denomalization

### Referential Integrity

### Rebalancing

Data skew.
