分库分表

一、使用场景

1、水平分库分表

特点:将数据按行进行拆分,不同的行存储在不同的库或表中

使用场景:

1.1、 大数据量读写:

- 单个表的数据量过大,导致查询、插入、更新等操作变慢。

1.2、 高并发:

- 增加系统的并发处理能力,通过多库多表分担负载,减少锁竞争。

1.3、 扩展性:

- 系统需要能够随时扩容,以应对快速增长的数据量和访问量。

例子:用户表按用户ID分片,将不同用户的数据分布到不同的表中。

2、垂直分库分表

特点:将表按字段进行拆分,不同的字段存储在不同的库或表中。

使用场景:

2.1、 字段较多:

- 单个表的字段过多,影响数据库性能,比如在检索或索引时性能下降。

2.2、业务逻辑明确:

- 表中不同字段由不同的业务模块使用,分开存储提高访问效率。

2.3、 安全或隐私需求:

- 将敏感信息与非敏感信息分开存储,提高数据安全性。

例子:用户信息表拆分成基本信息表和扩展信息表,基本信息用于常用业务,扩展信息用于个性化设置。

### 总结

- 水平分库分表:适用于通过行拆分解决大数据量和高并发问题。
- 垂直分库分表:适用于通过字段拆分提高性能或满足特定业务和安全需求。

选择分库分表方案时,应根据业务需求和数据特征做出最优决策,并充分考虑扩展性和系统复杂性。

 

posted @ 2024-10-28 17:45  凡人半睁眼  阅读(6)  评论(0编辑  收藏  举报