索引
一张表的索引就好像一本书的目录,书的目录就是将每一章节的标题按照树形结构组织起来,方便我们按照目录查到书的某一章节的内容;而数据表的索引就是将数据表中每个记录的某一列或者多列按照一定的方式组织起来,方便我们可以直接按照索引查到对应的记录。这里说的组织方式一般是指哈希散列存储组织或者B+树组织(一般是B+树)。一般数据表比较大的时候就需要创建索引提高查找速度。
1,单列索引
1.1 普通索引
MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一点。
1,创建普通索引
1)可以在创建表的时候顺便创建索引
ereatetab1e student (
sid int primary key ,
card_id varchar (20) ,
name varchar (20) ,
gender varchar (20),
age int,
birth date ,
index index_name (name) --给name列创建索引
);
该语句为name列创建索引index_name。
2)直接创建索引。
create index index_gender on student (gender) ;
3)修改表结构创建索引
alter table student add index index_age (age) ;
esp:使用索引注意:
一般sql语句里的where子句或on子句会使用到索引,例如前面的3)创建了student表的age为索引,则语句select* from student age=15;
会使用到该索引,该语句的查询结果会返回的相对没用索引比较快,尤其是数据量大的时候。注意这里如果只是有age列加了索引的话,用其他字段过滤查询并不能加快查找速度。
1.2 唯一索引
只有不允许重复的列才能创建唯一索引,唯一索引与前面的普通索引类似,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:
--方式1-创建表的时候直接指定create table student2 (
sid int primary key ,