一个表共12个字段,现在需要将6个字段同时设置为Primary Key时,这样组合字段primary key的值才是唯一,请问对于要将接近一半的字段设置为primary key的表,现在有以下问题请教,谢谢!1.太多字段做primary key是否对查询没有太大的帮助?
2.上面的例子是否用自增的字段做primary key比用上述6个段做primary key还好呢?
3.若2中的假设正确,那么primary key的字段不超过表中总字段的时候可以用多个字段做primary key才能发挥到primary key的查询的效率呢?
2.上面的例子是否用自增的字段做primary key比用上述6个段做primary key还好呢?
3.若2中的假设正确,那么primary key的字段不超过表中总字段的时候可以用多个字段做primary key才能发挥到primary key的查询的效率呢?
不一定有帮助.看实际情况2.上面的例子是否用自增的字段做primary key比用上述6个段做primary key还好呢?
决定用哪个做主键,一般与业务逻辑有关系.象你这种情况我会选择用自增ID3.若2中的假设正确,那么primary key的字段不超过表中总字段的时候可以用多个字段做primary key才能发挥到primary key的查询的效率呢?
一般最多四个字段做联合主键
个人看法:主键是为了保持数据的唯一和可标识性,一般来说它不涉及性能问题。你完全可以把聚集索引移到别的列而不使用默认模式。
2.上面的例子是否用自增的字段做primary key比用上述6个段做primary key还好呢?
个人看法:这个看业务需要,如果加上一个毫无意义的ID,却导致6个字段有重复值,反而给后续使用带来麻烦
3.若2中的假设正确,那么primary key的字段不超过表中总字段的时候可以用多个字段做primary key才能发挥到primary key的查询的效率呢?
个人看法:这个没有所谓的“最佳实践”
例如,太多字段做primary key。何谓太多,6个bit数据类型的字段,一点都不算多呀。
其次,这6个字段组成的索引就已经覆盖了频繁查询的所有字段,就对查询有益,因为不用去找数据页。
另外,还跟数据量有关,哪果只是几百条数据,查询分析器可能直接就去扫描数据页。
2、主键天生就是为了标识数据的唯一性,只是sqlserver(其他DBMS我不清楚)把它设为默认聚集索引而已