mysql索引分类介绍及使用

94 阅读1分钟

索引是什么

官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

索引的优势和劣势

优势:

1、可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。 -- 检索

2、通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。 --排序

  • 被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引的排序要复杂一些。

  • 如果按照索引列的顺序进行排序,对应order by语句来说,效率就会提高很多。

  • where 索引列 在存储引擎层 处理 索引下推 ICP

  • 覆盖索引 select 字段 字段是索引

劣势:

1、索引会占据磁盘空间

2、索引虽然会提高查询效率,但是会降低更新表的效率**。比如每次对表进行增删改操作,

3、MySQL不仅要保存数据,还有保存或者更新对应的索引文件。

创建索引

  1. 单列索引之普通索引

    CREATE INDEX index_name ON table_name(column(length)) ; ALTER TABLE table_name ADD INDEX index_name (column(length)) ;

  2. 单列索引之唯一索引

    CREATE UNIQUE INDEX index_name ON table(column(length)) ; alter table table_name add unique index index_name(column);

  3. 单列索引之全文索引

    CREATE FULLTEXT INDEX index_name ON table(column(length)) ; alter table table_name add fulltext index_name(column)

  4. 组合索引

    ALTER TABLE article ADD INDEX index_titme_time (title(50),time(10)) ; 删除索引

DROP INDEX index_name ON table

查看索引

SHOW INDEX FROM table_name