索引的概念
首先说到索引,我们可以把它认为是一本书的目录,并且是以列的方式进行设置的.
索引定义:索引是一种特殊的文件,包含对数据表里的所有记录的引用指针.可以对一列或多列创建索引,并制定索引的类型.
索引有非常优秀的数据结构,不同于红黑树和哈希表,而是B+树,至于原因,放到后面一个博客,敬请期待.
索引的优势:提高查询的速度.
劣势:占据了额外的硬盘空间,可能会拖慢插入,修改和删除的速度.
索引的查看
show index from 表名;
索引的创建
自动创建索引
主键
我先创建一个classes表,来查看主键是否会自动创建索引
create table classes(id int primary key, name varchar(20));
查看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;
注意: 当我们针对很大的表进行创建和删除时,可能会把数据库卡死,谨慎操作索引操作.
结语
索引的基本操作已经掌握,索引的数据结构放到下一个博客,希望家人们多多支持.