掌握MySQL数据库索引的知识

本文围绕Oracle数据库索引展开,介绍了索引概念,它类似书的目录,以列设置,采用B+树结构,能提高查询速度但占硬盘空间、影响增删改操作。还详细阐述了索引查看、自动(主键、外键、unique)和手动创建及删除的操作,提醒对大表操作时要谨慎。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引的概念

首先说到索引,我们可以把它认为是一本书的目录,并且是以列的方式进行设置的.
索引定义:索引是一种特殊的文件,包含对数据表里的所有记录的引用指针.可以对一列或多列创建索引,并制定索引的类型.
索引有非常优秀的数据结构,不同于红黑树和哈希表,而是B+树,至于原因,放到后面一个博客,敬请期待.

索引的优势:提高查询的速度.
劣势:占据了额外的硬盘空间,可能会拖慢插入,修改和删除的速度.

索引的查看

show index from 表名;

索引的创建

自动创建索引

主键

我先创建一个classes表,来查看主键是否会自动创建索引

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

classes表的属性
查看classes表的索引
创建成功

我们看到主键可以自动创建索引.

外键

我们再来创建一个student表.并把classes_id列作为classes表id的外键.

create table student(id int primary key, name varchar(20), classes_id int, foreign key(classes_id) references classes(id));

在这里插入图片描述
此时查看表student的索引
在这里插入图片描述

unique

我们创建一个person表

create table person (id int not null, qq int unique);

表的属性
查看unique字段是否会自动创建索引
在这里插入图片描述

我们看到unique也可以自动创建索引.

手动创建索引

create index 索引名 on 表名(列名);

我们来为student表的name属性创建一个idx_name索引:

create index idx_name on student(name);

创建成功

删除索引

drop index 索引名 on 表名;

操作示范
我们删除刚刚创建的student表的idx_name索引:

drop index idx_name on student;

已经删除成功
注意: 当我们针对很大的表进行创建和删除时,可能会把数据库卡死,谨慎操作索引操作.

结语

索引的基本操作已经掌握,索引的数据结构放到下一个博客,希望家人们多多支持.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值