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)-索引的主要内容,如果未能解决你的问题,请参考以下文章