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

mysql 索引学习记录

1 mysql索引的类型

MySQL 中,主要有四种类型的索引,分别为:B-Tree 索引,Hash 索引,Fulltext 索引和RTree

?

其中hash索引在对待联合索引的处理上有点特别

比如一个nameemail列的联合索引,

innodb,myisam中,是B-Tree索引,

select * from tb where name="james" 将会使用该索引

?

而如果是在memdb,此时该查询将找不到索引

?

?

2 索引的选择

4.0版本的mysql一个查询只能使用一个索引,所以选择索引对性能的影响尤其明显。

类似于联合查询中小结果集驱动大结果集,索引应该选择散列度最高的。

?

比如查询流水表某个账户的某条流水时,由于历史原因,可用的索引只有一个按账户号码。

?

?