MySQL索引问题.

MySQL索引问题.,第1张

肯定不同的

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 不建议使用,如果数据量有变化,指定的索引可能不是最佳的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7345348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存