首页 > 其他分享 >1、分库分表基础理论(一)

1、分库分表基础理论(一)

时间:2023-04-03 23:45:10浏览次数:39  
标签:分库 database -- 分片 分表 基础理论 数据

在高性能系统的要求下,复杂的系统当单表数据量增加到几千万甚至上亿条记录时,查询延迟无疑是影响高性能系统的瓶颈。业内提供的解决的方案是分库分表,冷热数据分离。

一、分库分表:

1、垂直分片:

按照业务维度将表拆分到不同的数据库,专库专用,分担数据库压力

 

2、水平分片:

(1)、水平分库

以字段为依据,按照一定策略,将一个库中的数据拆分到多个库中。

每个库的结构都一样;数据都不一样;所有库的并集是全量数据;

(2)、水平分表

以字段为依据,按照一定策略,将一个表中的数据拆分到多个表中。

每个表的结构都一样;数据都不一样;所有表的并集是全量数据;

 

 

二、数据分片方案:

1、Hash取模分片:

​ id%10 = 1 --> database 1 分片键

​ id%10 = 2 --> database 2

​(1)、优点:数据存放比较均匀

​(2)、缺点:当模数扩容时,需要大量的数据迁移

2、数值范围分片:

​ 1月份 --> database 1

​ 2月份 --> database 2

​(1)、优点:扩容不需要数据迁移

​(2)、缺点:可能存在某范围内数据激增,产生数据倾斜

3、根据业务场景,灵活制定分片策略:

​ 整体按照范围分片,保证扩容时,数据不需要迁移;范围内按照取模分片,使数据分布均匀

 

三、分库分表需要解决的问题:

​1、主键唯一性问题

​2、分布式事务问题

​3、SQL路由问题

​4、结果归并问题

数据持续高速增长,读多写少,查询逻辑固定的场景下更合适分库分表。

注:阿里提出,尽量不要分库分表;

 

参考

标签:分库,database,--,分片,分表,基础理论,数据
From: https://www.cnblogs.com/Iven-L/p/17284940.html

相关文章

  • 如何通过MyBatis的插件功能来实现分表功能
    前言之前项目中由于几张表的数据量特别的大,在查询的时候特别耗时,所以决定对其进行分表处理。考虑到项目中用的MyBatis作为ORM框架,所以便决定使用它的插件功能来实现动态的替换查询的表来实现分表功能。功能实现整体的目录结构如下TableShard:注解,用来标记需要分表的接口或者......
  • mycat分库分表一主一从(主从复制)
    一、mysql主从复制1、准备挂载文件为了将配置文件在宿主机做挂载,先运行测试镜像拷贝配置文件1)、拉取镜像dockerpullmysql:8.0.262)、创建测试容器mysql-demodockerrun-it-p3300:3306\--namemysql-demo\-eMYSQL_ROOT_PASSWORD=123456\-dmysql:8.0.26运行......
  • 一种自平衡解决数据倾斜的分表方法
    作者:京东零售梁强1、背景这篇主要描述了B端令牌系统应用数据分表解决业务数据量增大,且存在的数据倾斜问题,主要面向的场景是一对多数据倾斜问题1)B令牌的业务背景先简述......
  • 一款针对EF Core轻量级分表分库、读写分离的开源项目
    在项目开发中,如果数据量比较大,比如日志记录,我们往往会采用分表分库的方案;为了提升性能,把数据库查询与更新操作分开,这时候就要采用读写分离的方案。分表分库通常包含垂直分......
  • 亿万级分库分表后如何进行跨表分页查询
    前言在常规的应用系统开发中,很少会涉及到需要对数据进行分库或者分表的操作,多数情况下,我们习惯使用ORM带来的便利,且使用连接查询是一种高效率的开发方式,就算涉及到分表的......
  • 关于数据库分库分表的一点想法
    作者:京东物流 何小坡1开篇面对数据的激增,相信大家也都有分库分表的一些方案,这次的这个分享,算是自己的一个想法,可以当做一个参考方案,也欢迎相互讨论。话不多说,直接进入主......
  • 关于数据库分库分表的一点想法
    作者:京东物流 何小坡1开篇面对数据的激增,相信大家也都有分库分表的一些方案,这次的这个分享,算是自己的一个想法,可以当做一个参考方案,也欢迎相互讨论。话不多说,直接进入......
  • 《SQL与数据库基础》22. 分库分表(二)
    目录分库分表(二)MyCat分片规则范围分片取模分片一致性hash分片枚举分片应用指定算法固定分片hash算法字符串hash解析按天分片自然月分片MyCat原理MyCat管理MyCat-eye本文......
  • 如何评估MySQL是否要分库分表?
    今天和大家聊一聊分库分表的逻辑和评估方法,俗话说授人以鱼不如授人以渔,干货是总结,是技巧。底层逻辑是认知和思维。今天通过分析底层逻辑的方式,通过多个视角和大家分享下如何......
  • 分库分表支持海量数据
    是否真的要分库?容量提升了,但也带来了很多其他问题。比如:分库数据间的数据无法再通过数据库直接查询了。比如跨多个分库的数据需要多次查询或借助其他存储进行聚合再查......