1.索引概述
    mysql官方的定义:索引是帮助mysql高效获取数据的数据结构
    索引的本质:索引是数据结构。
    索引就像是书的目录,是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。索引中包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(BTree)中,使SQL可以快速有效地查找与键值关联的行。
    索引是在存储引擎中实现的,存储引擎可以定义每个表的最大索引数和最大索引长度。
    建立索引的目的是为了减少磁盘I/O的次数,加快查询速率。
    2.索引的优点
    ① 建立索引的列可以保证行的唯一性,生成唯一的rowId
    ② 建立索引可以有效缩短数据的检索时间
    ③ 建立索引可以加快表与表之间的连接
    ④ 为用来排序或者是分组的字段添加索引可以加快分组和排序顺序
    3.索引的缺点
    ① 创建索引和维护索引需要时间成本,这个成本随着数据量的增加而加大
    ② 创建索引和维护索引需要空间成本,每一条索引都要占据数据库的物理存储空间,数据量越大,占用空间也越大(数据表占据的是数据库的数据空间)
    ③ 会降低表的增删改的效率,因为每次增删改索引需要进行动态维护,导致时间变长