索引

本文详细介绍了数据库索引的概念、类型及实现方式,包括普通索引、唯一性索引、主键和全文索引等,并提供了具体的创建和删除索引的方法。

索引:就是一个列表,包含索引字段的值和相应的页码定位。

索引关键字进行了排序。查询时可以通过索引,提供查询速度。

书上的目录相似

表上查询:全表扫描

结构:Btree 根节点 中间节点 叶节点

索引的优点:提供查询速度。

缺点:占磁盘空间

会降低写的速度。(插入,更新,删除)

什么时候键索引:如果表主要是提供查询,那么在经常查询的字段上建立索引。

索引分类:

1.普通索引

create index 索引名

on 表名(字段名,。。。)

create index index_name

on xs(姓名);

2.唯一性索引:在一个表上可以创建多个,索引值不能重复。允许有空值

create unique index 索引名

on表名(字段名,。。。)

3.主键:primary key 在一个表上只能创建一个主键,主键字段不能出现重复值,

不允许为空。

4.全文索引

create fulltext index 索引名

on 表名(字段名,。。。)

通过修改表结构添加索引。

alter table 表名

add index 索引名(索引字段,。。。)

查看索引:show index from 表名

删除索引:drop index 索引名 on 表名

索引的创建:

1.表已经建好了:

1 createindex 索引名 on 表名(字段名,。。);

2) alter table 表名 addindex 索引名(字段名,。。。);

2.在建表的同时创建索引

create table abc

(id int primary key,

name varchar(10),

index ind_name(name));

create table abc1

(id int ,

name varchar(10),

primary key(id),

index ind_name(name));

索引的删除:

1.drop index 索引名 on 表名

2.alter table 表名

drop index 索引名

要求:在xs表的姓名字段上创建唯一性索引。

查看索引

输入记录验证唯一索引

删除索引。

1.普通索引(INDEX

这是最基本的索引类型,它没有唯一性之类的限制。创建普通索引的关键字是INDEX

2. 唯一性索引(UNIQUE

这种索引和前面的普通索引基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须是唯一的。创建唯一性索引的关键字是UNIQUE

3. 主键(PRIMARY KEY

主键是一种唯一性索引,它必须指定为“PRIMARY KEY”。主键一般在创建表的时候指定,也可以通过修改表的方式加入主键。但是每个表只能有一个主键。

4. 全文索引(FULLTEXT

MySQL支持全文检索和全文索引。在MySQL中,全文索引的索引类型为FULLTEXT。全文索引只能在VARCHARTEXT类型的列上创建,并且只能在MyISAM表中创建。它可以通过CREATE TABLE命令创建,也可以通过ALTER TABLECREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。

另外,当表类型为MEMORYHEAP时,除了BTREE索引,MySQL还支持哈希索引(HASH)。使用哈希索引,不需要建立树结构,但是所有的值都保存在一个列表中,这个列表指向相关页和行。当根据一个值获取一个特定的行时,哈希索引非常快。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值