索引:就是一个列表,包含索引字段的值和相应的页码定位。
索引关键字进行了排序。查询时可以通过索引,提供查询速度。
书上的目录相似
表上查询:全表扫描
结构: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。全文索引只能在VARCHAR或TEXT类型的列上创建,并且只能在MyISAM表中创建。它可以通过CREATE TABLE命令创建,也可以通过ALTER TABLE或CREATE INDEX命令创建。对于大规模的数据集,通过ALTER TABLE(或CREATE INDEX)命令创建全文索引要比把记录插入带有全文索引的空表更快。
另外,当表类型为MEMORY或HEAP时,除了BTREE索引,MySQL还支持哈希索引(HASH)。使用哈希索引,不需要建立树结构,但是所有的值都保存在一个列表中,这个列表指向相关页和行。当根据一个值获取一个特定的行时,哈希索引非常快。
本文详细介绍了数据库索引的概念、类型及实现方式,包括普通索引、唯一性索引、主键和全文索引等,并提供了具体的创建和删除索引的方法。
3734

被折叠的 条评论
为什么被折叠?



