mysql每个表是不是只允许有一个主键
那么primary(key1,key2)怎么回事
假设primary(id)与primary(id,time)
同时where id='1' 
性能有什么区别?

解决方案 »

  1.   

    primary(key1,key2)怎么回事主键只能有一个,但主键并不代表它只能由一个字段组成,主键可以是多个字段联合组成。 
    比如 (学号,学科,成绩) 中(学号,学科)可以组成联合主键。
      

  2.   

    与性能无关,因为本身的含义都不样,所以根本谈不上什么性能。primary(id)
    这个ID是无法重复的,表中只能有一个ID=1的。primary(id,time)
    ID,TIME合在一起不重复,表中可以有多个ID=1的,但不能有ID,TIME两者均相同的记录。
      

  3.   

    性能没什么关系.不过主键是越小越好,不过组合主键的话,如id和id time,后者在ID上有更多的选择
      

  4.   

    根据你查询的不同,不同的主键有不同的效率。主键又是唯一性索引,索引INDEX(ID)和INDEX(ID,NAME)是不一样的。复合主键下,必须所有字段都重复,才会主键重复。SELECT * FROM TB WHERE ID=100;  这样的条件下,INDEX(ID)会比INDEX(ID,NAME)好
    SELECT * FROM TB WHERE ID=100 AND NAMD='NAME' ;这样的条件下,INDEX(ID,NAME)效率比INDEX(ID)好。等于覆盖索引了。
      

  5.   


    是只允许一个主键,但是这个主键的字段可以是多个。所以才有primary(key1,key2);同时where id='1'时primary(id)和primary(id,time)都会使用到索引,但前一个索引效率高,索引小,查找速度快。
      

  6.   

    primary(key1,key2)
    只能是联合主键
      

  7.   

    primary(key1,key2)怎么回事
    联合主键假设primary(id)与primary(id,time)
    同时where id='1'  
    性能有什么区别?
    与性能是没有任何关系的。