日期:2014-05-16  浏览次数:20766 次

mysql 索引优先级规则
mysql 索引优先级规则是如何的?

例如:
索引1:名字为a, 索引字段(qq,ww,ee,rr)
索引2:名字为b, 索引字段(qq,ww,ee,tt)

在执行一条查询语句,用到qq,ww,ee这3个索引 

mysql如何去选择a或者b呢

------解决方案--------------------
mysql会判断用哪个代价小 用代价小的
------解决方案--------------------
那个最少的查询那个就先用到索引。
------解决方案--------------------
这两个索引对 where qq = ? and ww =? and ee =?

在WHERE语句上的优化相同,然后MYSQS会根据你的 select ... 中的输出列来断定用哪一个索引,或者和其它表JOIN时哪个索引更有利。
如果语句仅仅是
select * from xxx where qq = ? and ww =? and ee =?

则MYSQL会随机选择一个索引,一般是已加载在内存中的或者第一个。