1. 索引类型:(1)
普通索引 (2) 唯一索引 (3) 全文索引 (4) 主键索引
(1) 普通索引(Normal)
:
普通索引的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column=)或排序条件(ORDERBY column)中的数据列创建索引。
普通索引允许被MySQL索引的数据列包含重复的值。
(2)
唯一索引(Unique):
如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该用关键字UNIQUE把它定义为一个唯一索引。使用唯一索引的好处在于:①提高索引效率②保证索引字段数据的唯一性。人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。
(3) 全文索引(Full Text):适合用于存储了较长字符串或大段文字的字段,通常把索引长度设置为10-15个字符足可以把搜索记录缩小到几个字符
(4) 主键索引:为字段定义主键约束时,Mysql内部自动创建主键索引,提高查询效率
2. 索引方法:(1) Hash (2) B-Tree (3) R-Tree
(1) Hash:
仅支持"=","IN"和"<=>"精确查询,不能使用范围查询;
Hash 索引无法被用来避免数据的排序操作。
检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引;
Hash 索引在任何时候都不能避免表扫描。
Hash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高。
(2) B-Tree:Mysql中使用最频繁的索引类型,被索引的列是经过排序的,每个叶结点到根结点距离相等,B-Tree适合用于查找某一范围内的数据,可以直接支持数据排序
(3) R-Tree:仅支持
geometry数据类型