Mysql分区表为什么唯一键必须添加分区字段

Hi,all:
我们从昨天开始纠结,为什么MySQL的分区表中唯一键必须加上分区字段?
以主键ID为例。
我们陷入了误区就是,我们一直认为加了分区字段前ID是唯一,加了分区字段后ID还是唯一的?
我们忽略的一点是,我们的表结构变了,索引结构变了,现在的唯一键并不能保证之前的字段是唯一的了,换句话说就是,Mysql的分区表并不能保证单字段唯一。
原因是MySQL的分区表索引都是local的(在Oracle中,local也不要能保证全局唯一)。
所以,MySQL希望你做妥协,要么,你唯一索引去掉,这样你分区表随便建,要么,你把分区键加进之前的唯一索引中,这样MySQL能保证组合唯一。
因为Oracle的索引以及表的物理存储和MySQL不一样。所以,Oracle普通的索引依然能保证单字段唯一,因为Oracle的普通索引不是local的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值