详细介绍:索引index

一、索引是什么?

索引是一种帮助MySQL提高查询效率的数据结构。

索引优点:

        提高数据查询速度。

索引缺点:

        维护索引需要耗费数据库资源;索引需要占用磁盘空间;当对表的数据进行增删改的时候,因为要维护索引,速度会受到影响。

二、索引分类(面试必问)

InnoDB所支持的索引:

(1)主键索引

设定为主键后数据库会自动建立索引,innodb为聚簇索引。

建表时自动创建

索引列值不能为空null。

(2)单值索引(单列索引;普通索引)

除主键之外,为表中的某个字段(一个)单独创建的索引。

一个索引只包含单个列,一个表可以有多个单列索引。

(3)唯一索引

索引列的值必须唯一,但允许有空值。

索引列值可以存在null,但是只能存在一个null。

(4)复合索引(组合索引)

一个索引包含多个列

MyISAM所支持的索引:

Full Text 全文索引(MySQL5.7版本之前,只能用于MyISAM引擎)

全文索引类型为Full Text,在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引可以在char/varchar/text类型列上创建。MySQL只有MyISAM存储引擎支持全文索引(使用场景不多)。

三、索引的基本操作

(1)查看索引

show index from 表名;

(2)普通索引创建两种方式

①建表时创建

create table t_user(id varchar(20) primary key,name varchar(20),key(name));
“随表一起建立的索引,索引名和列名一致”

②建表后创建

create index name_index on t_user(name);

(3)删除索引

drop index 索引名 on 表名

(4)唯一索引创建的两种方式

①建表时创建(“随表一起建立的索引,索引名和列名一致”)

create table t_user(id varchar(20) primary key,name varchar(20),unique(name));

②建表后创建

create unique index nameindex on t_user(name);

(5)复合索引创建的两种方式

①建表时创建

create table t_user(id varchar(20) primary key,name varchar(20),age int, key(name,age));

②建表后创建

create index nameageindex on t_user(name,age);

posted @ 2025-10-24 17:23  yjbjingcha  阅读(1)  评论(0)    收藏  举报