1 mysql索引的类型
在MySQL 中,主要有四种类型的索引,分别为:B-Tree 索引,Hash 索引,Fulltext 索引和RTree
?
其中hash索引在对待联合索引的处理上有点特别
比如一个name和email列的联合索引,
在innodb,myisam中,是B-Tree索引,
select * from tb where name="james" 将会使用该索引
?
而如果是在memdb,此时该查询将找不到索引
?
?
2 索引的选择
4.0版本的mysql一个查询只能使用一个索引,所以选择索引对性能的影响尤其明显。
类似于联合查询中小结果集驱动大结果集,索引应该选择散列度最高的。
?
比如查询流水表某个账户的某条流水时,由于历史原因,可用的索引只有一个按账户号码。
?
?