数据库
首页 > 数据库> > mysql从入门到精通笔记-第十一章索引

mysql从入门到精通笔记-第十一章索引

作者:互联网

目录

索引是一种特殊的数据库结构,用于提高国内数据性能的重要方式,可以用来快速查询数据表中的特定记录。
mysql中所有的数据都可以被索引,用于快速查询数据库中特定的记录。
索引包括:

11.1 索引概述

11.1.1 mysql索引概述

索引是将数据库中单列或者多列值进行排序的结构。(索引是一种结构),使用索引可以大幅提升查询的效率。
1、可以提升查询的速率;
2、可以降低服务器的负载;
3、索引类似于书本的目录,不用遍历所有数据,通过索引即可查询到数据。
索引的劣势:
1、索引需要维护:创建索引、后期的维护耗时;
2、索引需要占用物理存储空间;
3、索引在进行插入等操作因为要插入索引的操作,会消耗时间和性能(可以考虑先删除索引,大量插入数据后再进行新建索引的操作)

总体来说:索引可以提高查询速率,但是需要一定的维护成本。
不同的存储引擎,对每个表的索引的个数和最大长度的定义也不同:所有的存储引擎至少支持16个引擎,每个索引最少256字节长度。
mysql默认使用的是B树的索引方式,也可以使用哈希的方式。

11.1.2 mysql索引的分类

11.2 创建索引

已经存在的数据表中,至少一列上进行索引的创建,提高数据库查询的速度和服务器的性能。

11.2.1 创建数据库时创建索引

CREATE TABLE 表名称(
    属性名 属性类型 [约束条件],
    属性名 属性类型 [约束条件],
    属性名 属性类型 [约束条件],
    属性名 属性类型 [约束条件]

    [UNIUQE|FULLTEXT|SPATIAL] INDEX或者KEY
    [别名](属性名1 [(长度)] [ASC|DESC])
);
1、索引的类型:UNIQUE-唯一索引、FULLTEXT-全文索引、SPATIAL-空间索引
2、Index和key用户指定字段索引,用户只用选择其中一个即可。
3、可以为索引取一个别名,别名的参数:
(1)属性名1:索引对应的字段名
(2)长度可选,索引的长度,字符串类型才可以使用
(3)ASC/DESC 升序和降序。

11.2.2 创建普通索引

img
img

11.2.3 创建唯一性索引

创建唯一性索引使用UNIQUE关键字进行表的约束。
唯一索引可以约束字段的唯一性,但是有时候并不能提升用户的查询速度,不能实现优化查询的目的。
img

11.2.4 创建全文索引

1、全文索引只能作用于 CHAR、VARCHAR、TEXT类型的属性字段;
2、只用存储引擎MyISAM支持全文检索,InnoDB或者其他存储引擎在5.6后引入支持;
img

11.2.5 创建单列、多列索引

1、创建单列索引,即是在单个属性字段上进行索引的创建;
2、创建多列索引,即是在多个属性字段上进行索引的创建:使用的时候必须要用到第一个字段,索引才会有效。
创建的方法和前面相同。
img
img
只用查询条件使用了第一列,即使用了name才会应用索引。

11.2.6 创建空间索引

1、字段必须要有NOT NULL的约束;
2、使用的字段类型是 geometry 类型才可以使用空间索引。
--后续使用后再补充

11.2.7 已经存在的表,创建索引

和创建表格时,创建索引类似,这里语法结构有点不同。

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON 表名(属性[长度|asc|desc]);

img
其他创建各种类型的索引方法类似。

11.3 修改索引

修改索引,起始就添加一个索引。

ALTER TABLE 表名 ADD [UNIQUE|FULTEXT|SPATIAL] INDEX index_name(属性名[len|desc|asc]);
通过修改表来实现

img

11.3 删除索引

不再需要的索引进行删除,节省空间,同时提高性能。

DROP INDEX index_name ON table_name;

img

标签:唯一性,创建,mysql,全文索引,11.2,索引,第十一章,属性
来源: https://www.cnblogs.com/spring2022/p/16397126.html