KEY `Index_2` (`username`,`groupid`)
--这个是多个列构成"复合索引",只有查询条件列有前缀列username时才能用得上索引,否则,则查询列只有groupid列时会用不上这个索引的,如:
select * from users where groupid=800 --这个查询用不上这个复合索引的,因为没前缀列username出现在查询条件中.
KEY `Index_2` (`username`)
KEY `Index_3` (`groupid`)
--这里面是2个单个列的索引.如上面的查询仅有单个列出现在查询条件中,也会用上对应列的索引,但2个列同时出现在查询条件中时,也只能用一个索引,如:
select * from users where username='aa' and groupid=800 --这个查询只能用其中一个索引,而这个查询在前面那种复合索引的情况下会形成索引覆盖,可能使查询更有效率.andy_ksf希望help you。reference51cto,365testing
1、mysql强制使用主键索引
2、强制指定一个特定索引
3、同时指定两个
4、在多个表join中强制使用索引
select * from table ignore index(PRI) limit 2(禁止使用主键)
select * from table ignore index(idx) limit 2(禁止使用索引”idx”)
select * from table ignore index(PRI,idx) limit 2(禁止使用索引”PRI,idx”)
force index 不建议使用,如果数据量有变化,指定的索引可能不是最佳的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)