MySQL分区表

1.什么是分区表

分区表顾名思意就是将一张表拆分成多个区块。一个分区表在底层由多个物理子表组成,但逻辑上任然是一张表。分区表通过某种规则将表拆分成多个区块。

使用分区表需要注意以下几点:
1)一个表最多只能有1024个分区
2) MySQL5.1中,分区表达式必须是整数,或者返回整数的表达式。在MySQL5.5中提供了非整数表达式分区的支持。
3)如果分区字段中有主键或者唯一索引的列,那么多有主键列和唯一索引列都必须包含进来。即:分区字段要么不包含主键或者索引列,要么包含全部主键和索引列。
4)分区表中无法使用外键约束
5)MySQL的分区适用于一个表的所有数据和索引,不能只对表数据分区而不对索引分区,也不能只对索引分区而不对表分区,也不能只对表的一部分数据分区。

2. 分区表得原理

分区表上的操作按照下面的操作逻辑进行:
  select查询:
    当查询一个分区表时,分区表先打开并锁住所有的底层表,优化器先判断是否可以过滤部分分区,
    然后再调用对应的存储引擎接口访问各个分区的数据。
  insert操作:
    当写入一条记录时,分区层先打开并锁住所有的底层表,然后确定哪个分区接收这条记录,再将记录写入对应底层表。
  delete操作:
    当删除一条记录时,分区层先打开并锁住所有的底层表,然后确定数据对应的分区,最后对相应底层表进行删除操作
  update操作
    当更新一条记录时,分区层先打开并锁住所有的底层表,m

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值