看yueliangdao0608的文章里面提到的东西,传送门:
http://blog.chinaunix.net/space.php?uid=259788&do=blog&id=2139293
create table category_part(
cid int unsigned not null auto_increment,
cname varchar(64) not null,
parent_id int not null,
primary key (cid,parent_id))
partition by list(parent_id)(
partition p1 values in (1,2,3,6,9),
partition p2 values in (4,5,10,22,23),
partition p3 values in (7,8,11,12,13),
partition p4 values in (14,15,16,17,20),
partition p5 values in (18,19,21,24,25)
);
这里的主键设置的是(cid,parent_id),因为cid是auto_increment,所以他就是唯一的了。
问题就是:cid做为主键和(cid,parent_id)做为主键有什么区别?
是因为用(cid,parent_id)做为主键的话相当于有了两个索引吗?
以前在我的概念里主键更多的是起唯一标识的作用,没别的含义。
谢谢高人指点一番。
http://blog.chinaunix.net/space.php?uid=259788&do=blog&id=2139293
create table category_part(
cid int unsigned not null auto_increment,
cname varchar(64) not null,
parent_id int not null,
primary key (cid,parent_id))
partition by list(parent_id)(
partition p1 values in (1,2,3,6,9),
partition p2 values in (4,5,10,22,23),
partition p3 values in (7,8,11,12,13),
partition p4 values in (14,15,16,17,20),
partition p5 values in (18,19,21,24,25)
);
这里的主键设置的是(cid,parent_id),因为cid是auto_increment,所以他就是唯一的了。
问题就是:cid做为主键和(cid,parent_id)做为主键有什么区别?
是因为用(cid,parent_id)做为主键的话相当于有了两个索引吗?
以前在我的概念里主键更多的是起唯一标识的作用,没别的含义。
谢谢高人指点一番。
用(cid,parent_id)作为主键是它们两个一起具有唯一性。
cid int unsigned not null auto_increment,
cname varchar(64) not null,
parent_id int not null,
primary key (cid,parent_id))
partition by list(parent_id)(
partition p1 values in (1,2,3,6,9),
partition p2 values in (4,5,10,22,23),
partition p3 values in (7,8,11,12,13),
partition p4 values in (14,15,16,17,20),
partition p5 values in (18,19,21,24,25)
);
这里的主键设置的是(cid,parent_id),因为cid是auto_increment,所以他就是唯一的了。
问题就是:cid做为主键和(cid,parent_id)做为主键有什么区别?
是因为用(cid,parent_id)做为主键的话相当于有了两个索引吗?
以前在我的概念里主键更多的是起唯一标识的作用,没别的含义。
谢谢高人指点一番。
从这个表结构而言,这样创建主键是因为:parent_id字段是作为分区字段的作用;分区字段有一个硬性要求:若是分区表有主键则为簇索引或无主键时有非空唯一则为簇索引的情况下,分区字段必须作为簇索引 或簇索引的一部分;关于InnoDB引擎索引的问题可以查阅网站:www.mysqlops.com 上的资料,自己站内搜索下: innodb 主键选型
第二个完全没有意义
这篇文章,我在想如果我先建的表,数据都插好了,再分区,是不是得先删除主键,重新建立主键呢?没做过实际的东西,就看着yueliangdao0608的文章做过试验。不知道这个分区表一般都是什么时候做的。