分库分表原则

分库分表原则

分库分表原则_第1张图片

单表数据到达千万级别或者20存储空间

优化已经解决不了问题一

IO瓶颈导致性能问题

拆分策略

分库分表原则_第2张图片

垂直分库

以表为依据,根据业务将不同的表拆分到不同库中,有点像微服务

分库分表原则_第3张图片

垂直分表

以字段为依据,根据字段属性将不同字段拆分到不同表中

拆分规则:把不常用的字段单独放一张表,把大字段text,blob等拆分出来放在附表中
分库分表原则_第4张图片

水平分库

将一个库的数据拆分到多个库中
分库分表原则_第5张图片

分的库合起来的数据才是所有的数据

可以根据id节点取模或者范围路由查找数据

水平分表

将一个表的数据拆分到多个表中,可以在同一个库中,表名要不一样

优化单一表数据量过大产生的性能问题

分库分表原则_第6张图片

分库分表产生的问题

1.分布式事务一致性的问题

一个事务操作数据库提交事务失败了,其它的操作还是成功

2.跨节点关联查询

分完表查询的只是一个表但是数据不完全

3.跨界点分页、排序

还是分表后单表数据不完全的问题

4.主键避重

主键自增,操作多个表存在主键重复问题

分库分表原则_第7张图片

分库分表中间件

使用中间件可以解决这些问题

sharding-sphere

mycat

总结

分库分表原则_第8张图片

你可能感兴趣的:(数据库)