主键及索引的问题 看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)做为主键的话相当于有了两个索引吗? 以前在我的概念里主键更多的是起唯一标识的作用,没别的含义。 谢谢高人指点一番。
------解决方案--------------------
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)做为主键的话相当于有了两个索引吗? 以前在我的概念里主键更多的是起唯一标识的作用,没别的含义。 谢谢高人指点一番。