MySQL索引的操作
索引的概念:数据库对象索引其实与书的目录类似,
主要是为了提高从表中检索数据的速度。
(2)根据索引的存储类型可以将索引分为B型索引(BTREE)和哈希索引(HASH)。
(3)MySQL所支持的索引:普通索引、唯一索引、全文索引、单列索引、多列索引和空间索引。
一、创建和查看普通索引
(1)创建表时创建普通索引
create table 课程表( 课程编号 char(3), 课程名称 varchar(20), 课时 float, 专业编号 char(3), 教师编号 char(4), index index_课程名称(课程名称) ); show create table 课程表 \G explain select * from 课程表 where 课程名称=1\G drop index index_课程名称 on 课程表; \\删除刚刚创建的索引
(2)在已经存在的表上创建普通索引
create index index_课程名称 on 课程表(课程名称); show create table 课程表 \G drop index index_课程名称 on 课程表;
(3)通过SQL语句alter table创建普通索引
alter table 课程表 add index index_课程名称(课程名称); show create table 课程表 \G drop index index_课程名称 on 课程表;
二、创建和查看唯一索引
(1)创建表时创建唯一索引
create table 班级表( 班级编号 char(3), 专业编号 char(3), 班主任编号 char(4), unique index index_班级编号(班级编号) );
explain select * from 班级表 where 班级编号=1 \G drop index index_班级编号 on 班级表;
(2)在已经存在的表上创建唯一索引
create unique index index_班级编号 on 班级表(班级编号); show create table 班级表 \G drop index index_班级编号 on 班级表;
(3)通过SQL语句alter table创建唯一索引
alter table 班级表 add unique index index_班级编号(班级编号); show create table 班级表 \G drop index index_班级编号 on 班级表;
三、创建和查看全文索引
drop table 教师表;
(1)创建表时创建全文索引
create table 教师表( 教师编号 varchar(10), 教师姓名 varchar(50), 职务 varchar(6), 性别 char(1), 年龄 int, fulltext index index_教师姓名(教师姓名) )engine=MyISAM; show create table 教师表 \G drop index index_教师姓名 on 教师表;
(2)在已经存在的表上创建全文索引
create fulltext index index_教师姓名 on 教师表(教师姓名); show create table 教师表 \G drop index index_教师姓名 on 教师表;
(3)通过SQL语句alter table创建全文索引
alter table 教师表 add fulltext index index_教师姓名(教师姓名); show create table 教师表 \G drop index index_教师姓名 on 教师表;
四、创建和查看多列索引
(1)创建表时创建多列索引
create table 专业表( 专业编号 char(3), 专业名称 varchar(20), key index_专业编号_专业名称(专业编号,专业名称) ); show create table 专业表 \G drop index index_专业编号_专业名称 on 专业表;
(2)在已经存在的表上创建多列索引
create index index_专业编号_专业名称 on 专业表(专业编号,专业名称); show create table 专业表 \G drop index index_专业编号_专业名称 on 专业表;
(3)通过SQL语句alter table创建多列索引
alter table 专业表 add index index_专业编号_专业名称(专业编号,专业名称); show create table 专业表 \G drop index index_专业编号_专业名称 on 专业表;