Mysql 索引【总结】

一、索引:索引时数据库中提高查询效率的技术,类似于字典的目录;

1、为什么使用索引?

如果不使用索引,数据会零散的保存在每一个磁盘块当中,查询数据时,需要挨个的遍历每一个磁盘块查找数据,如果数据量非常大,遍历每一块数据也是一件非常耗时的事情,添加索引后,会将磁盘块以树状结构进行保存,查询数据时会有目的性的访问部分磁盘块,因为访问的磁盘块数量降低,所以能够起到提高查询效率的作用;

2、索引是越多越好吗?

不是,因为索引会占磁盘空间,通过某个字段创建的索引可能永远用不上,则这个索引完全没有存在的意义,只需要对查询时频繁使用的字段创建索引。

3、有索引就一定好吗?

不一定,如果数据量小,使用索引反而会降低查询效率。

4、索引的分类:

  • 聚集索引(聚簇索引):通过主键创建的索引为聚集索引,添加了主键约束的表会自动添加聚集索引,聚集索引的树状结构中保存了数据。
  • 非聚集索引:通过非主键字段添加的索引,叫做非聚集索引,树状结构中只保存了数据所在磁盘块的地址,并没有数据。

5、创建索引的格式:create index 索引名 on 表名(字段名[长度]);

create index i_item on item(title);

6、查看索引:show index from 表名;

show index from item;

7、删除索引:drop index 索引名 on 表名;

drop index i_item on item;

8、复合索引:通过多个字段创建的索引,称为复合索引。

格式:create index 索引名 on 表名(字段一,字段二);

频繁使用多个字段进行数据查询时,为了提高查询效率可以创建复合索引;

二、索引总结:

  1. 索引适用于提高查询效率的技术,类似于目录;
  2. 索引会占磁盘空间,不是越多越好;
  3. 如果数据量小的话,索引会降低查询效率;
  4. 不要再频繁改动的表上添加索引。

猜你喜欢

转载自blog.csdn.net/weixin_44296929/article/details/108666488