mysql 分区表

mysql分区

  • 将一个表分解成多个表来进行多磁盘存放,不过这个分解对应用来说是透明的

    • 相比单磁盘可以存储更多数据
    • 在进行查询的时候可以只查询必要的分区,对于sum() count()可以并行执行
    • 对于过期数据可以直接整个分区删除,效率高
    • 多个磁盘获取更大吞吐量
  • partition key:分区键,按照特定的键分区。如果表有主键、唯一键,则分区键只能在这些中选;否则随意

  • 同一个分区表的所有分区使用同样的存储引擎

分区类型

  • range:整型范围作为分区条件
    • 使用场景:需要删除过期数据;经常运行分区键的查询
  • range columns:支持非整型分区(例如日期、时间)
  • list:离散值作为分区的条件
  • hash:通过指定列的hash值(必须是整型或者处理后是整型)进行分区
    • 用户可以自己定义表达式返回整型作为分区依据
    • 不适合需要灵活变动的分区,增删分区会带来分区重新分配
  • key:类似于hash
    • 可以不指定key,默认用主键、其次用非空唯一键

分区管理

  • 分区可以进行删除、新增、重新分配。
  • 分区删除后,分区及其数据都将消失
create table tb{
    a int,
    b int
}
partition by range(a){
        partition p1 values less than(10),
        partition p2 values less than(20),
};
// partition by hash(a) partitions 2 //使用hash分区
// alter table tb drop partition p1;//删除分区及其数据
  • 可以将分区表的不同分区存放到不同的路径下(不同的硬盘上)。但是这个功能必须是mysql5.6.6以上的版本中

https://blog.youkuaiyun.com/h330531987/article/details/76474164

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值