1.键的概念
-
键:数据库中的键(key)又称为关键字,是关系模型中的一个重要概念,它是逻辑结构,不是数据库的物理部分;
-
唯一键:即一个或者一组列,其中没有重复的记录,可以唯一标示一条记录;
-
主键:属于唯一键,是一个比较特殊的唯一键,区别在于主键不可为空;
# id为主键 name是唯一键
create table Mark(id int not null primary key ,name varchar(250) unique key);
create table Mark(id int, name varchar(250), primary key(id), unique key(name));
- 外键:一张表外键的值一般来说是另一张表主键的值,因此,外键的存在使得表与表之间可以联系起来;
create table students_to_teacher(to_id int, stu_id int, tea_id int, foreign key(stu_id) references students(id), foreign key(tea_id) references teacher(id));
2.索引的概念
-
索引就像是一张表的目录,在查找内容之前可以先在目录中查找索引位置,以此快速定位查询数据,保存索引数据的文件一般会与保存数据的目录分开;
-
索引应该构建在经常被用作查询条件的字段上;
3.索引类型
- 普通索引:加速查询;
# 创建普通索引
create index 索引名称 on 表名(列名)
# 删除普通索引
drop index 索引名称 on 表名
# 查看索引
show index from 索引名
- 唯一索引(UNIQUE KEY):加速查询 + 列值唯一(可以有null);
# 创建唯一索引
create unique index 索引名称 on 表名(列名)
# 删除唯一索引
drop unique index 索引名称 on 表名
-
主键索引(PRIMARY KEY):用于加速查询,只能有一个主键字段,不允许重复且不能为NULL;
-
组合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并;
-
全文索引:对文本的内容进行分词,进行搜索;
-
空间索引:指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构;
4.引优化策略
- 独立使用列&