索引(index)是帮助MySQL高效获取数据的数据机构(有序),在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引
用于快速找出在某个列中有一特定值的行
不使用索引的话,MySQL必须从第一条记录开始读完整个表,直到找出相关的行
如果表中有索引,MySQL能够快速到达一个位置去搜索数据文件(类似一个二叉树),而不必去查看所有数据,将会节省很大的时间
优势:
类似于图书馆的书目索引,提高检索效率,降低数据库的IO成本
通过索引对数据进行排序,降低排序的成本,降低了CPU的消耗
劣势:
实际上也是一张表,该表保存了主键与索引字段,并指向实体表的记录,所以索引也是要占空间的
虽然大大提高了查询速度,但是会降低更新表的速度,如表的 insert,update,delete
不同的存储结构有着不同的结构,主要有以下几种:
B+Tree
Hash
R-tree
Full-text
重点:B+Tree索引