mysql索引,MySQL--联合索引

注意一下mysql的联合索引,联合索引的顺序对性能也会有影响,现在数据量不够,日后再实测。
索引这个很重要,如果没有索引的话,mysql会从第一行一直找直到找到符合条件的。大多数mysql索引(primary key,unique,index和fulltext)都是采用B-树存储。
Mysql在下面情况使用索引:
1.select查询语句中匹配where子句
2.如果能在多个索引中选择使用哪个索引时,mysql通常使用能够返回最少行的索引
3.在使用join操作从其他表获取记录。如果join的数据列的数据类型和大小都一样的话,这个列上索引将会使上述操作更加有效
4.对具体有索引的列key_col找出MAX()或MIN()值。由预处理器进行优化,检查是否对索引中在key_col之前发生所有关键字元素使用了WHERE key_part_# = constant。在这种情况下,MySQL为每个MIN()或MAX()表达式执行一次关键字查找,并用常数替换它。如果所有表达式替换为常量,查询立即返回。例如:
SELECT MIN(key_part2),MAX(key_part2)
FROM tbl_name WHERE key_part1=10;
(不太明白)
5.如果对一个可用关键字的最左面的前缀进行了排序或分组(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表如果所有关键字元素后面有DESC,关键字以倒序被读取。
6. 在一些情况中,可以对一个查询进行优化以便不用查询数据行即可以检索值。如果查询只使用来自某个表的数字型并且构成某些关键字的最左面前缀的列,为了更快,可以从索引树检索出值。
更多的在使用中去查mysql手册。
联合索引即index(man,woman)
当where的第一个条件是使用"=","<>"时候能够使用索引,只使用第二个women条件不能使用索引。总之能够使用的索引的地方要注意最左的原则,至于联合索引如果构建还需要具体查阅资料。
Tags:  mysql索引

延伸阅读

最新评论

发表评论