找回密码
 立即注册
杭州6期1—何茹 +好友
这个人很懒什么都没写
听众
2
主题
19
金钱
236
个人名片
粉丝关注
还没有人关注TA
添加表情

数据库——索引

已有 203 次阅读2021-4-14 09:07

索引
一、什么是索引
一个索引是存储在表中的数据结构,索引在表的列名上创建。
索引中包含了一个列的值,这些值保存在一个数据结构中
定义:索引存在于对应的索引文件中,索引本质就是一组排好了顺序的一组数据
作用:在索引数据中对数据行进行定位时,避免全部扫描
索引文件位置:1、如果当前表依赖于INNODB存储引擎,索引存在FRM文件
                      2、如果当前表依赖于MYISAM存户引擎,索引存在MYI文件
索引基本操作:1、查看表文件中已经存在的索引,show index from表
                      2、创建索引,create index 索引名 on 表名()
                      3、删除索引,drop index 索引名 on 表名
mysql数据库中索引也是要排序的,并且排序和treeste数据结构相同,遵循左小右大原则存放


索引是一种数据结构

二、索引的作用
1、保证数据记录的唯一性
2、实现表与表之间的参照完整性
3、减少排序和分组的时间 ;(例如在使用0rder by,group by 查询语句进行数据检索时)
4、可以利用索引快速访问数据库中的特定信息.(重点)

三、索引的缺点
索引要占物理空间
对表进行增,删,改,查,索引也要动态维护,降低数据的微幅速度

四、索引分类
普通索引 index (简称mul) 最基本的索引,没有任何限制
主键索引 primary key (简称pri) 是一种唯一索引,不能为空
唯一索引 unique (uni) 也是一种唯一索引,但是能为空
全文索引 fulltext 用于文章的汇总,针对较大的数据,生成全文索引很耗(拓展知识)
 组合索引 
单列索引 
聚焦索引 
非聚焦索引 

五、索引查询语句
查询方法一、show index from 表名 常用
查询方法二、show keys from 表名  查询索引

六、表结构查询,查看索引
desc表名
查看emp表的结构:desc表名

七、创建索引(创建索引都在表中 alter table)
第一种方式创建索引
普通索引 index 在表结构中显示(mnl)
最基本的索引,没有任何限制
格式一
alter table 表名add index 索引名(字段名)  有括号
格式二
alter table表名 add index(字段名)

第二种方式创建索引
create 创建索引
create index 索引名 on 表名(字段名)
多列创建:
create index aa on dept(字段名1,字段名2,字段名3,,,等)
案例:create index bb on emp(name,id)
第三种方式建表时指定索引
create table aa(id int(10) primary key ,name varchar(20) is not null )



八、唯一索引unique(uni)
是一种表示唯一,可以有多列(理解为:唯一索引在一个表中可以有多个),可以为空
比如:一张表中,身份证唯一,手机号唯一,可以为空,可以有多个字段为唯一;
唯一索引格式—:
aiter table 表名add unique索引名  。创建索引名和字段名不相同的唯一索引

唯一索引格式二
alter table 表名 add unique(字段名) 索引名和字段名相同
唯一索引在表结构中显示
唯一索引的简称 uni

九、主键索引 primary key (pri) 主键索引在一个表中只有一个
主键索引,列唯一性(理解为:一个表中只有一个唯一索引),二不能为空
添加索引:alter table 表名 add primary key(字段名) 创建主键索引
只能创建一个主键,两个就(报错: Multiple primary key defined)

十、删除索引
1、删除主键索引
alter table 表名 drop primary key

2、普通索引删除和唯一索引
alter table emp drop age 删除普通索引
删除普通索引和唯一索引是一样的方法,但是不能删除唯一索引

总结索引的作用

1、约束字段和数据
2、加快检索速度(order by group by 等)执行时需要对所有数据进行排序
3、保证表的唯一性
4、加快表与表之间连接



















评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册