Jos*_*ábl 9 mysql partitioning unique-index
我们有一个简单的产品表.每个产品都有其独特的ID和类别.用户经常按类别搜索,因此我想按类别对产品进行分区.一个分区中的每个类别,例如
我该怎么做?因为我的ID列当然有一个主键,需要我的ID唯一.每个类别都不是唯一的.
但是,partitiong具有这样的限制:"表中的每个唯一键必须使用表的分区表达式中的每一列".
那么,这不会使分区有点无用吗?或者我错过了什么?我该怎么办?
http://dev.mysql.com/doc/refman/5.1/en/partitioning-limitations-partitioning-keys-unique-keys.html
Joc*_*lyn 11
诀窍是将字段添加category
到当前主键.(您的主键仍将是主键)
然后您可以按类别对表进行分区.
以下是您可能使用的代码:
ALTER TABLE `products` DROP PRIMARY KEY , ADD PRIMARY KEY ( `id` , `category` );
ALTER TABLE `products` PARTITION BY KEY(category) PARTITIONS 6;
Run Code Online (Sandbox Code Playgroud)
auto_increment
如果您希望它真正唯一,请为id 添加选项,并且在表中插入数据时不要指定id值.id将在插入时由数据库服务器确定.
如有必要,请更改字段名称和键名称.
文档:
分区类型
KEY Partioning
归档时间: |
|
查看次数: |
8434 次 |
最近记录: |