MySQL(12)-索引

Posted H_Cisco

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL(12)-索引相关的知识,希望对你有一定的参考价值。

 普通索引--非聚集型索引

 普通索引就是在创建索引时,不附加作何限制条件,如唯-一、非空等限制,这种类型的索引可以创建在任何数据类型的字段上。

 创建表时,创建索引表

 在已经存在的标上创建普通索引

 唯一索引

 要求索引列的值是唯一的,需要用UNIQUE来标明

 建表时创建唯一索引

 在已经存在的标上创建唯一索引

 通过alter table语句创建唯一索引

 

 主键索引

 通过关键字alter增加主键

 

 全文索引

 限制在char、varchar、text字段上

 限制在MyISAM的数据表上创建全文索引

 建表时创建

 在已经存在的标上创建

 通过alter table

 

 

 创建多列索引

 在使用多列索引时,在多列索引中只有查询条件中使用了这些列中的第一个列时,多列索引才会被使用。

 

 

 

 

 查看索引

 在command Line Client模式下

 删除索引

 

 

 

 

 

 

create unique index ix_sno on student(sno)

create index ix_sname on student(sname)

create index ix_sage on student(sage)

create index ix_sno_cno on sc(sno,cno)

show create table student \\G

show create table sc \\G

drop index ix_sname on student

drop index ix_sage on student

查询指定学号(如sno:1001)的成绩,并按照成绩由高到低排序;要求显示学号、课程号、成绩

 

为了提高查询速度,请创建对应的索引表。

create index ix_sno on sc(sno)

create index ix_score on sc(score)

create index ix_sno_cno sc(cno)

 

求全部的平均年龄

求男生、女生分别的平均年龄

求全部年龄最大的学生全部信息

求年龄从大到小的全部学生的信息

 

为了提高查询速度,请创建对应的索引表。

create index ix_sage on student(sage)

 

插入大量数据之前先不要索引或删除索引,然后再建立索引;

先插入到制临时表,再用insert into插入到student表中;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 如果你发现对student表,当你插入新行数据或删除数据时非常慢,你应该怎么办
  • 如果你发现现实情况,要求我们对年龄有大量查询任务,如下
  • 如果需要完成下列查询语句:
  • 删除student表上年龄字段的普通索引表
  • 查看student、sc表的索引信息
  • 在sc表上创建学号、课程号的组合索引表
  • 在student表上创建姓名字段的普通索引表,创建年龄字段的普通索引表
  • student表上创建学号字段的唯一性索引表

以上是关于MySQL(12)-索引的主要内容,如果未能解决你的问题,请参考以下文章

补12.关于mysql的索引回顾

linux12 -MYSQL数据库 -->09索引和事务

linux12 -MYSQL数据库 -->07数据库索引和存储引擎

Mysql(12)—哈希索引的数据结构以及索引的优缺点

mysql_12_索引的分类_创建_删除

MySQL中的不可见索引倒序索引