分布式系统-分库分表

简介: 分布式系统-分库分表

为什么进行分库分表?

引言

业务快速增长带来的问题

在一个系统初期,一个Java应用背后对应的是一套数据库、一套数据表。业务发展后,后天业务逻辑变长、请求数量增加、数据表数据量暴增,这种情况下会出现一系列的问题:

1、数据库连接数量逼近瓶颈;

2、单机存储容量难以控制,时长需要磁盘扩容;

3、单表数据量巨大将导致SQL执行缓慢;

4、锁等待、死锁问题时长发生;

以上问题都可以通过分库分表进行很好的缓解或解决;

分库分表都有具体含义细节?

分库分表包括分库和分表两个部分,

在生产中通常包括:垂直分库、水平分库、垂直分表、水平分表四种方式。

1、垂直分库

2、垂直分表

将一个表按照字段分成多表,每个表存储其中一部分字段;

当表数据量很大时,可以将表按字段切开,将热门字段、冷门字段分开放置在不同库中,这些库可以放在不同的存储设备上,避免IO争抢。垂直切分带来的性能提升主要集中在热门数据的操作效率上,而且磁盘争用情况减少;

通常我们按以下原则进行垂直拆分:

把不常用的字段单独放在一张表;把text,blob等大字段拆分出来放在附表中;经常组合查询的列放在一张表中;

3、水平分库

目的:

解决了单库大数据,高并发的性能瓶颈,提高了系统的稳定性及可用性。是为解决单表数据量大的问题

4、水平分表

目的:是为解决单表数据量大的问题

相关文章
|
Java 中间件 数据库连接
分库分表的4种方案
分库分表的4种方案
997 0
|
5月前
|
消息中间件 缓存 算法
中间件数据一致性
【7月更文挑战第23天】
49 1
|
弹性计算 Java 关系型数据库
分库分表比较推荐的方案
ShardingSphere 绝对可以说是当前分库分表的首选!ShardingSphere 的功能完善,除了支持读写分离和分库分表,还提供分布式事务、数据库治理等功能。另外,ShardingSphere 的生态体系完善,社区活跃,文档完善,更新和发布比较频繁
196 0
|
消息中间件 Java 关系型数据库
分布式系统第五讲:分布式事务及实现方案
分布式系统第五讲:分布式事务及实现方案
182 0
|
SQL cobar 算法
分库分表中间件介绍
分库分表中间件介绍
|
关系型数据库 MySQL 中间件
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
138 0
|
SQL 关系型数据库 Java
分库分表:中间件方案对比
分库分表:中间件方案对比
2577 9
分库分表:中间件方案对比
|
存储 算法 数据库
一次难得的分库分表实践(上)
一次难得的分库分表实践
|
Oracle 关系型数据库 大数据
从CockroachDB看分布式数据库系统的一致性
最近仔细研究了下CockroachDB的相关文档和paper,感觉在市场上众多的NewSQL分布式数据库系统中,它对于数据的一致性追求应该是最为极致的,由此也回顾了下分布式系统下,所谓的一致性相关概念,由于每次思考起这个东西总感觉有些烧脑,经常会反复走入同一个思维误区,这里感觉记录下自己当前的理解,个人感觉应该是准确的,如果大家看到不对的地方欢迎指正。
908 0
从CockroachDB看分布式数据库系统的一致性
|
消息中间件 中间件 数据库
也谈分库分表在实际应用的实践(上)
也谈分库分表在实际应用的实践(上)
153 0
也谈分库分表在实际应用的实践(上)
下一篇
DataWorks