聚簇索引是顺序结构与数据存储物理结构一致的一种索引,并且一个表的聚簇索引只能有唯一的一条;
通常默认都是主键,设置了主键,系统默认就为你加上了聚簇索引
非聚簇索引记录的物理顺序与逻辑顺序没有必然的联系,与数据的存储物理结构没有关系;一个表对应的非聚簇索引可以有多条,根据不同列的约束可以建立不同要求的非聚簇索引;
索引失效
1、对单字段建了索引,where条件多字段。
2、建立联合索引,where条件单字段。与上面情况正好相反。
3、对索引列运算,运算包括(+、-、*、/、!、<>、%、like'%_'(%放在前面)、or、in、exist等),导致索引失效。
4、类型错误,如字段类型为varchar,where条件用number。
5、对索引应用内部函数,这种情况下应该建立基于函数的索引。
6、如果mysql估计使用全表扫描要比使用索引快,则不使用索引