> 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.

![](/files/-M9pr_YJc1SMHj-xl6nb)

## Common problems of Sharding

### Joins and Denomalization

### Referential Integrity

### Rebalancing

Data skew.
