一、概念:
索引是帮助数据库高效获取数据的有序数据结构
二、优点以及缺点
优点:
索引可以提高数据检索效率,降低IO成本
按照索引字段排序,可以降低排序成本,降低cpu消耗
缺点:
索引需要额外占用磁盘空间
对数据库进行增删改操作时,需要对索引进行维护,降低了更新数据的效率
三、索引的分类:
按照数据结构: B+TREE索引、R+TREE索引、HASH索引、FULL-TEXT索引
按照类型: 主键索引、唯一索引、常规索引、全文索引
在InnoDB存储引擎中根据索引的形式又可以分为
①、聚集索引
将数据与索引存放在一起,索引结构的叶子节点保存了行数据,聚集索引必须要有并且只有一个,如果存在主键索引,那么主键索引就是聚集索引,如果不存在主键索引,将使用第一个唯一索引作为聚集索引,如果表中既没有主键,也没有唯一索引,则innodb会自动生成一个rowid作为隐藏的聚集索引。
②、二级索引
将数据和索引分开存储,索引结构的叶子节点关联的是对应的主键,可以存在多个。
四、索引创建的语法
CREATE INDEX [UNIQUE|FULLTEXT] 索引名 ON 表名(字段列表);
查看表中创建的索引: show index from 表名;
删除索引: drop index 索引名 on 表名;
五、explain执行计划
explai