mysql之三星索引

  • 时间:
  • 浏览:
  • 来源:互联网

1.where后的谓词按顺序匹配索引列
2.索引行的顺序与排序语句一致
3.索引行包含查询语句中所有的列

select user_name,sex,age from test where user_name like 'test%'  and sex =1 ORDER BY age

索引1:(user_name,sex,age)
第三颗星,满足,select查询的列都在索引列中;
第一颗星,满足,user_name 可以匹配到一个索引列列 user_name和一个过滤列sex,他们是相邻的;
第二颗星,不满足,user_name 采用了范围匹配,sex 是过滤列,此时age 列并不是有序的,不满足 order by age要求

索引2:(sex,age,user_name)
第一颗星,不满足,只可以匹配到sex 索引列,sex索引列是一个宽索引片;
第二颗星,满足,等值sex 的情况下,age是有序的:
第三颗星,满足,select查询的列都在索引列中

本文链接http://www.dzjqx.cn/news/show-617139.html