日期:2014-05-18  浏览次数:20391 次

有个很深奥的难题,大侠请进
创建主键后,系统会自动为该主键创建索引。但如果是联合主键,索引会是什么样子? 
比如,一个表中的编码字段和日期字段设为联合主键后,如果查询条件只有编码或只有日期,索引还会起作用吗?

以下是我看见的解答:求证实

假设在表A上建立基于(cola,colb)的组合索引,那么以下三种情况可以走引用该索引:
1.select * from A where cola=1 and colb=5;
2.select * from A where cola=1;
3.select * from A where colb=5 and cola=1;

请注意以下两种情况是不会用到索引的:
1.select * from A where colb=5;
2.select * from A where cola=1 or colb=5;

那假设是3个键的联合主键呢,4,5,6个,请问是什么规律吗

------解决方案--------------------
与联合主键的顺序有关。
------解决方案--------------------
楼主得去研究索引结构了
------解决方案--------------------
规则就是与联合索引多个字段的次序有关
比如索引(A,B,C,D),条件是
A
A,B
A,B,C
A,B,C,D
(在条件中的次序无关)
都可高效使用索引,其它查询不能