Shardingsphere01——分库分表

分库分表

背景:数据库数据量不可控、随着时间和业务发展,造成表里面数据越来越多,如果再去CRUD操作的时候,会造成性能问题。为了解决数据量过大而造成数据库性能降低的问题,采用分库分表的方案。

 商品DB -> 商品表1 、 商品表2 、 
 商家DB -> 商家表1 、 商家表2 、

分库分表的方式

分科分表有两种方式:垂直拆分和水平拆分

  • 垂直拆分:垂直分表和垂直分库
  • 水平拆分:水平拆表和水平拆库

垂直拆分

  • 垂直分表:操作数据库中某张表,把这张表中一部分字段数据存到一张新表里面,再把这张表另一部分字段数据存到另外一张表里面。比如课程表分为课程描述表课程基本信息表
  • 垂直分库:把单一数据库按照业务进行划分,专库专表(比如课程数据库和订单数据库)

水平拆分

  • 水平分表:课程信息表1,课程信息表2,课程信息表n。按照一定的规则,在不同表中存放一部分数据。
  • 水平分库:根据id进行判断,如果id是偶数,就把新增到A库,如果id是奇数,就新增到B库。从而减少单库中的数据量。

小结

  • 应用:
    • 在数据库设计时考虑垂直分库和垂直分表
    • 随着数据库数据量增加,不要马上考虑做水平切分,首先要考虑加缓存、做读写分离、使用索引等方式。如果这些方式不能根本解决问题了,再考虑做水平分库分表。
  • 分库分表问题:
    • 跨节点连接查询问题。不同数据库不同服务器=>分布式查询问题,包括分页、排序等问题。
    • 多数据源管理问题。
posted @ 2022-03-22 15:13  SsoZh  阅读(69)  评论(0编辑  收藏  举报