分布式数据库分表

mysql分区 —> 求余算法
根据数据表字段讲过对应算法的处理之后取模。最终决定数据所存储的“数据表”
1.key算法:按照内置的key算法运算数字
key算法创建分区
语法:
create table xxx(
	字段 类型
    ......
)
partition by key(字段/表达式)partitions 分区去数目;
MySQL 内置的分区功能,对于数据表永远对外只有一张数据表,但是本质对数据文件进行了拆分
备注:写入数据存储到哪一个分区是由MySQL决定

2.hash算法:按照内置的hash算法运算数字
create table xxx(
	字段 类型
    ......
)
partition by hash(字段/表达式)partitions 分区去数目;
mysql分区 —> 范围区间算法
1.list算法:范围算法
create(
	字段 类型
    ......
)
partition by list(字段/表达式)(
	partition 名称1 values in (列表1),
    partition 名称2 values in (列表2),
    partition 名称3 values in (列表3),
)
2.range算法:区间算法 
语法格式:
create(
	字段 类型
    ......
)
partition by range(字段/表达式)(
	partition 名称1 values less than (常量),
    partition 名称2 values less than (常量),
    partition 名称3 values less than (常量),
)
分区的追加
1.Key/hash 算法追加
语法格式:
alter table 表名 add partition partitions 追加的数量;

2.range算法追加
alter table 表名 add partition(
	artition 名称 values less than (常量)
)
注意:只能向后追加

3.list分区追加
alter table 表名 add partition(
	partition 名称 values in (n,n,n)
);
分区的删除
1.key/hash 算法删除
alter table 表名 coalesce partition number;
对于求余算法删除分区不会导致数据丢失

2.range/list 算法删除分区
alter table 表名 drop partition 分区名称; 
特别注意:范围区间的算法删除分区会导致数据丢失
分表的分类

垂直分表

垂直分表即将数据表按照字段进行拆分。拆分之后每张表中的字段不一致(将数据表按照垂直的方向切割)
适用:表的字段特别多的时候,按照使用频率。

垂直分表的常用的两种拆分方式:
	1)根据字段你的使用频率将经常使用的字段储存在一张表。将并不经常使用的储存在另外一张表。
	2)根据字段是否为固定长度。将固定长度的字段放到一张表,可变长度的字段放到一张表

水平分表

水平分表即将数据进行拆分。拆分之后内帐表的字段一模一样。但是存储的数据不一致(可以理解为将数据表水平切割)。MySQL内置的分区功能也属于水品分表中的一种
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值