索引:索引相当于书签,为了帮助MySQl高效的查询数据的数据结构,使用的B+树。

  • 使用索引可以降低I/O使用率,降低cpu的使用率,提高查询效率
  • 但并不是所有的场景都适合索引,如过数据很少,或者字段经常修改,以及字段不经常使用都没必要使用索引,因为索引也是会占用资源的。并且它会降低增删改的效率,因为修改数据的时候还要修改索引。

那么都有哪些索引呢

单值索引(普通索引):一个表可以有多可单值索引

  • create index name_index on table_test(name)
  • alert table table_test add index name(name)

唯一索引:唯一索引的值不能重复

  • create unique index id_index on table_test(id)
  • alert table table_test add unique index id_index(id)

主键索引:主键索引是唯一索引,但唯一索引不是主键索引,不能为NULL

复合索引:多个列构成的索引

  • creat index name_age on table_test(name,age)
  • alert table table_test add index name_age(name,age)

删除索引

  • drop index 索引名 on table_test

查询索引

  • show index from table_test