使用索引查询时,1个复合索引键和单独的索引键有什么区别?
`users` (
**KEY `index` (`email`,`name`)**
)
`users` (
**KEY `email`(`email`),
KEY `name`(`name`)**
)
答案 0 :(得分:0)
第一个允许行对两个字段施加一个唯一约束,即允许跟随行
email name
a@b.com user1
a@b.com user2
b@b.com user2
a@b.com user1 ----> Invalid
虽然第二个要求两个列都是唯一的。
email name
a@b.com user1
a@b.com user2 ----> Invalid
b@c.com user3
d@e.com user4
d@f.com user4 ----> Invalid
现实生活场景将通过他们的名字作为关键来识别班级中的学生。可能有许多同名的学生,因此自然不能被强加为独特的。但是,在这种情况下,具有姓名和出生日期的复合密钥将被证明是一个很好的关键。
答案 1 :(得分:0)
这是故事的一小部分......
请考虑以下事项:
country continent governance population
Afghanistan Asia Islamic Republic 31
Albania Europe Constitutional Republic 3
France Europe Constitutional Republic 66
India Asia Constitutional Republic 1210
Mauritania Africa Islamic Republic 3
Spain Europe Consitutional Monarchy 47
United Kingdom Europe Consitutional Monarchy 64
如果我想寻找治理是“伊斯兰共和国”的亚洲国家。那么(continent
,governance
)的索引就会有用。
但是,如果我想搜索一般治理的国家是伊斯兰共和国'那么我就无法使用这个索引了。我可以使用(governance
,continent
)或仅使用(governance
)。