这篇文章主要介绍分库分表,以及分库分表带来的问题、
# # 分库分表的几种形式
水平分库,本质是把相同的表放在不同的机器上。
垂直分库:本质是将多个表拆分到不同的机器上。
水平分表,本质是分表数据。
垂直分表: 本质是将不同的字段分成成多个表。
# # 垂直分表(按照字段分,分的内容是字段)
带来的好处:
# # 垂直分库(分的内容是表)
简单的理解就是将数据库放在不同的机器上。
带来的好处:
# # 水平分库(本质是分的表数据,把表数据分到不同的机器上去)
# # 水平分表(本质是分表数据)
# # 分库分表最终的形式
其中tabel1 和 table2 是一类表,表字段相同。
从这个架构来看,想要操作表需要经过的是: 判断服务器是哪个 --> 判断表是哪个
# # 分库分表带来的问题
分布式事务问题
跨节点关联查询,有可能查询的数据不在相同的服务器上,那是不是想要关联查询就要拆成连个分别去执行呢?
全量数据的排序问题,需要排序的数据分布在不同的表中,以最简单的上一个架构图中可以看到,一份数据被放在了三个库的九张表中。
主键重读的问题,比方说:主键自增,如果九张表都是自增,且都是从1 开始自增,那主键就一定要重复了。
# # 公共表的问题
实际开发中,往往有一些数据,量并不大,并不需要分库分表。比方说数据字典表,有点数据属于高频联合查询的依赖表,比如地理区域表。
标签:自增,分库,本质,分表,数据,主键 From: https://blog.51cto.com/u_15812686/5740067