mysql 分区 分表 分库


分区

分区就是把一张表分割成几份,当查找一条数据的时候,不需要全表查找,只需要知道在那一块,然后在那一块查找
MySQL5.1以后支持横向分区

分区分为横向分区纵向分区


横向分区的几种方式

1、range分区(常用)

常用场景:

  1. 假如需要删除10岁之前的雇员时,只需要删除指定分区
  2. 假如需要统计10岁之前的雇员人数时,只需要扫描指定分区即可

将数据划分成不同范围,例如将年龄分成若干个分区

CREATE TABLE t1(id INT,NAME VARCHAR(20),age INT)
PARTITION BY RANGE(age)
(
PARTITION p01 VALUES LESS THAN (10), ##小于10岁
PARTITION p02 VALUES LESS THAN (20), ##小于20岁
PARTITION p03 VALUES LESS THAN maxvalue ##大于等于20
);

2、list分区(常用)

将数据不规则分区,例如将根据商品分类划分分区

CREATE TABLE t2(c_id INT,NAME VARCHAR(20))
PARTITION BY LIST(c_id)
(
PARTITION p01 VALUES IN(1,3,5),##id为1、3、5分为一个区
PARTITION p02 VALUES IN(2,4,6) ##id为2、4、6分为一个区
);

3、hash分区

将一个或多个列值进行hash计算,根据对应的数据区域进行分区

CREATE TABLE t3(id INT,NAME VARCHAR(20))
PARTITION BY HASH(id) ##根据id进行分区
PARTITIONS 4; ##4个分区

4、key分区

CREATE TABLE t4(id INT,NAME VARCHAR(20))
PARTITION BY KEY(id) 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值