分库分表
发布日期:2021-05-24 16:18:12 浏览次数:39 分类:技术文章

本文共 591 字,大约阅读时间需要 1 分钟。

 这篇文章主要介绍分库分表,以及分库分表带来的问题、

 

# # 分库分表的几种形式

 水平分库,本质是把相同的表放在不同的机器上。

 垂直分库:本质是将多个表拆分到不同的机器上。

 水平分表,本质是分表数据。

 垂直分表: 本质是将不同的字段分成成多个表。

 

# # 垂直分表(按照字段分,分的内容是字段)

 带来的好处:

 

# # 垂直分库(分的内容是表)

  简单的理解就是将数据库放在不同的机器上。

 

带来的好处:

 

 

# # 水平分库(本质是分的表数据,把表数据分到不同的机器上去)

 

 

# # 水平分表(本质是分表数据)

 

 

 

# # 分库分表最终的形式

其中tabel1 和 table2 是一类表,表字段相同。

 

   

  从这个架构来看,想要操作表需要经过的是: 判断服务器是哪个 -->  判断表是哪个 

 

 

 # # 分库分表带来的问题

 分布式事务问题

 跨节点关联查询,有可能查询的数据不在相同的服务器上,那是不是想要关联查询就要拆成连个分别去执行呢?

 全量数据的排序问题,需要排序的数据分布在不同的表中,以最简单的上一个架构图中可以看到,一份数据被放在了三个库的九张表中。

 主键重读的问题,比方说:主键自增,如果九张表都是自增,且都是从1 开始自增,那主键就一定要重复了。

 

# # 公共表的问题

 实际开发中,往往有一些数据,量并不大,并不需要分库分表。比方说数据字典表,有点数据属于高频联合查询的依赖表,比如地理区域表。

 

 

 

 

转载地址:https://blog.csdn.net/star1210644725/article/details/104375267 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:分库分表中间件 sharding
下一篇:利用 spring 的 bean 和策略模式优雅的写出可扩展的代码

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月09日 16时26分15秒