mysql索引与算法

对索引错误的理解纠正:

1.如果知道数据要使用索引,应该一开始就添加,而不是事后添加,会造成时间的浪费和索引的遗漏

2.索引并非越多越好,需要找到一个平衡点

 

注:学习之前,请先看以下b树,b+树的curd和自调整操作,以及哈希算法,本次主要针对Innodb引擎。

常见索引:B+树索引,全文索引,哈希索引。

记住以下两点:1.Innodb存储引擎支持哈希索引是自适应的,Innodb存储引擎会根据表的情况自动生成哈希索引,不能认为干预是否一张表中生成哈希索引。

2.B+树索引并不能找到一个给定值的具体行,而是找到查找数据行的所在页,所以数据库把页读入到内存,再进行查找。

一.B+树索引

分为集聚索引和辅助索引,不同的是叶子节点是一整行的信息。

1.集聚索引

按照每张表的主键构造出一颗B+树,叶子节点存放整张表的行记录数据,叶子节点称为数据页,通过双向链表来链接。

2.辅助索引

叶子节点除包含键值以外,每个叶子节点中的索引行还包含一个书签,用来找到与索引相对应的行数据。

注:show index from 表名。查看索引信息,Cardinality非常关键,判断是否使用这个索引

二.哈希索引

使用哈希算法(除法散列)来对字典进行查找,冲突机制采用链表方式。

三全文检索

将存储于数据库中的整本书或整篇文章的任意内容信息查找出来的技术。

 

 

 

 

 

你可能感兴趣的:(mysql索引与算法)