Mysql唯一字段和复合唯一键有什么差异?

UNIQUE KEY (a,b)

UNIQUE KEY (c) //字段c字符串类型 格式是a_b

这两种唯一键的设计,在数据库的读写上有哪些差异?

阅读 3.7k
2 个回答

SQL UNIQUE 约束用于防止一个表中出现重复记录,UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证,PRIMARY KEY 约束会自动定义一个 UNIQUE 约束,或者说 PRIMARY KEY 是一种特殊的 UNIQUE 约束,但二者是有明显区别的:每个表可以有多个 UNIQUE 约束,但只能有一个 PRIMARY KEY 约束.

UNIQUE KEY (a,b) 只有ab全部相同才会冲突
UNIQUE KEY (c) c字段相同就会冲突

由于索引定义了唯一性,查找到第一个满足条件的记录后,就会停止继续查找,提高查询效率;
所以a,b类型的索引会先查a,再查b是否满足条件;
c类型的索引直接查整个字符串,效率会更高。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题