mysql 索引分类 创建索引 删除索引

索引分类

索引是一种将数据库中单列或者多列的值进行排序的结构。

索引有两种存储类型,包括B型树(BTREE)索引和哈希(HASH)索引,其中B型树为系统默认索引方法。

索引分类:普通索引、唯一索引(UNIQUE)、全文索引(FULLTEXT)、单列索引、多列索引、空间索引(SPATIAL)。

普通索引 :即不使用任何限制条件的索引,该索引可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。

唯一索引:创建该索引时,索引的值必须唯一。使用UNIQUE参数可以设置唯一索引。通过唯一索引,用户可以快速定位某条记录。主键是一种特殊的唯一索引。

全文索引 : 使用FULLTEXT参数可以设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR、TEXT类型的字段上。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。默认情况下,应用全文搜索大小写不敏感。

单列索引:即只对应一个字段的索引,可以包括上述的三种索引。

多列索引:是在表的多个字段上创建索引。该索引指向创建时对应的多个字段,用户可以通过这几个字段进行查询。要想应用该索引,必须使用这些字段中的第一个字段。

空间索引:使用SPATIAL参数可以设置索引为空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率。Mysql中只有MyISAM存储引擎支持空间检索,而且索引的字段不能为空。


聚集索引、非聚集索引

聚集(clustered)索引

聚集(clustered)索引,也叫聚簇索引。(主键索引属于聚集索引)
定义:数据行的物理顺序与列值(一般是主键的那一列)的逻辑顺序相同,一个表中只能拥有一个聚集索引。
如果给表上了主键,那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构,也就是「平衡树」结构,换句话说,就是整个表就变成了一个索引。
一个表只能有一个主键, 一个表只能有一个「聚集索引」,因为主键的作用就是把「表」的数据格式转换成「索引(平衡树)」的格式放置,数据行的物理顺序和列值(一般是主键的那一列)的逻辑顺序相同。
在这里插入图片描述
其中树的所有结点(底部除外)的数据都是由主键字段中的数据构成,也就是通常我们指定主键的id字段。最下面部分是真正表中的数据。

非聚集索引

除聚集索引外的其他索引方式都是非聚集索引
每次给字段建一个新索引, 字段中的数据就会被复制一份出来, 用于生成索引。 因此, 给表添加索引,会增加表的体积, 占用磁盘存储空间。
在这里插入图片描述
** 非聚集索引和聚集索引的区别 ** 在于, 通过聚集索引可以查到需要查找的数据, 而通过非聚集索引可以查到记录对应的主键值 , 再使用主键的值通过聚集索引查找到需要的数据
在这里插入图片描述

创建索引、删除索引

创建索引

1.在创建表时创建索引
在定义表格结构之后添加 [UNIQUE | FULLTEXT | SPATIAL ] INDEX | KEY [别名] (属性名1 [(长度)] [ASC | DESC])
INDEX 和 KEY:用于指定字段索引,在选择时,只需要选择其中的一种即可。
别名:为可选参数,妻作用是给创建的索引取新名称。
属性名1:指索引对应的字段名称,该字段必须被预先定义
长度:可选参数,其指索引的长度,必须是字符串类型才可以使用。
ASC | DESC : 可选参数,ASC 表示升序排列, DESC 表示降序排列。
KEY idx_clue_id (clue_id)

2.在已存在的数据表中创建索引
create index 索引名 on 表名 (索引字段)
CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX index_name ON table_name (属性 [(length)] [ ASC | DESC]);

  1. 修改数据表结构添加索引
    ALTER TABLE table_name ADD [ UNIQUE | FULLTEXT | SPATIAL ] INDEX index_name (属性名 [(length)] [ASC | DESC]);
    ALTER TABLE gps_bind_info ADD INDEX idx_gps_id (gps_id);

删除索引

DROP INDEX index_name ON table_name;

查看索引

(1)show index from tblname;
(2)show keys from tblname;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值