Mysql—索引原理与详解
程序员文章站
2022-03-28 12:13:45
索引的原理 索引的优点和缺点和使用原则 优点: 缺点: 使用原则 索引的分类 普通索引:加速查找 唯一索引:加速查找+约束 (唯一) 主键索引:加速查找+约束(不为空且唯一) 外键索引: 组合索引:primary key(id,name):联合主键索引,unique(id,name):联合唯一索引, ......
索引的原理
索引的优点和缺点和使用原则
- 索引优点:1.可以加快数据的检索速度,查询速度。2.所有的mysql列类型(字段类型)都可以被索引,也就是可以给任意字段建立索引。
- 索引缺点:1.
- 使用原则
索引的分类
- 普通索引:加速查找
- 唯一索引:加速查找+约束 (唯一)
- 主键索引:加速查找+约束(不为空且唯一)
- 外键索引:
- 组合索引:primary key(id,name):联合主键索引,unique(id,name):联合唯一索引,index(id,name):联合普通索引
- 全文索引:用于搜索很长一篇文章的时候,效果最好。(full text)
- 空间索引:了解就好,几乎不用。(spatial)
普通索引(index)
使用规则 1.一个表中可以有多个index字段 2.字段的值可以有重复,也可以为null值。字段值无约束 3.经常把做查询条件的字段设置为index字段 4.index字段的key标志为:mul
创建普通索引(有三种方法) 方法1:创建表时创建索引index create table student( id int, name varchar(25), score float(5,2), index(name), # 创建name索引 index(score) # 创建score索引 ); 方法2:创建表后创建索引index:索引名一般和字段名一样,只要自己能认出就行,可以随便起名。 mysql> create index 索引名 on 表名(字段名) mysql> create index name on student(name); 方法3:创建表后创建索引index mysql> alter table 表名 add index 索引名(字段名); mysql> alter table student add index(name); mysql> alter table student add index name6(name);
查看普通索引:key一列就是索引的列,我们会发现在name和score有值mul。 mysql> desc 表名; mysql> desc student; # key标志为:mul mysql> show index from 表名; # key_name值为索引名 mysql> show index from student\g; # 如果字段名过多,就添加一个\g。
删除普通索引:删除普通索引只能一个一个删除 mysql> drop index 索引名 on 表名; mysql> drop index name6 on student;
唯一索引(unique)
使用规则 1.一个表中可以有多个unique字段 2.unique字段的值不允许重复,可以为空值null 3.unique的key标志是uni
创建唯一索引(基本等同index创建) 方法1:创建表时创建索引 create table student( id int, name varchar(25), score float(5,2), unique(name), unique(score) ); 方法2:创建表后创建索引:索引名一般和字段名一样,只要自己能认出就行,可以随便起名。 mysql> create unique index 索引名 on 表名(字段名); 方法3:创建表后创建索引 mysql> alter table student add unique(name); mysql> alter table student add unique name6(name); mysql> alter table student add unique index name6(name);
查看唯一索引 mysql> desc 表名; mysql> show index from 表名;
删除唯一索引 mysql> drop index 索引名 on 表名;
主键索引(primary key)
外键索引(foreign key)
上一篇: 远程连接docker
下一篇: Centos7查不出ens33的ip地址