什么是索引

索引(index)是帮助MySQL高效获取数据的数据机构(有序),在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引

用于快速找出在某个列中有一特定值的行

不使用索引的话,MySQL必须从第一条记录开始读完整个表,直到找出相关的行

如果表中有索引,MySQL能够快速到达一个位置去搜索数据文件(类似一个二叉树),而不必去查看所有数据,将会节省很大的时间

Untitled

优势和劣势

优势:

类似于图书馆的书目索引,提高检索效率,降低数据库的IO成本

通过索引对数据进行排序,降低排序的成本,降低了CPU的消耗

劣势:

实际上也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引也是要占空间的

虽然大大提高了查询速度,但是会降低更新表的速度,如表的 insert,update,delete

索引结构

不同的存储结构有着不同的结构,主要有以下几种:

B+Tree

Hash

R-tree

Full-text

重点:B+Tree索引