(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)

2022-10-20
| 19页
| 85人阅读
| 1人下载
普通

内容正文:

(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版) 第4章 索引与视图 2 4.1.1 索引的概念 在关系型数据库中,索引是一种对表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或多列的值的集合与指向表中标识这些值的数据页的逻辑指针列表。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需要的内容。 索引提供指向存储在表的指定列中的数据值的指针,并且根据指定的排序顺序对这些指针进行排序。查询数据库时可以通过索引找到特定值,然后跟随指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可以快速访问数据库表中的特定信息。 当表中包含大量记录时,从表中查询数据通常有以下两种方式。 全表搜索,即从表取出所有的记录,并与查询条件逐一进行对比,然后返回满足条件的记录,这样做会消耗大量系统时间,并造成大量磁盘I/O操作。 事先在表中基于一列或多表创建索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的行标识(相当于页码)快速找到表中对应的记录。 使用MySQL数据库时也不是总要通过索引来优化查询。使用索引固然可以提高检索数据的速度,但创建和维护索引需要耗费一定的时间,而且存储索引也需要占用一定的磁盘空间。索引可以提高查询数据的速度,但也会影响插入数据的操作,这是因为向有索引的表中插入记录时,这些记录会按索引进行排序。 4.1 索引概述 4.1.2 索引的作用 在数据库中创建索引主要有以下作用。 快速读取数据。 保证数据记录的唯一性。 实现表与表之间的参照完整性。 在SELECT语句中使用GROUP BY、ORDER BY子句进行数据查询时,通过索引可以缩短分组和排序的时间。 在MySQL中,对所有数据类型的列都可以创建索引,但使用时需要注意以下几点。 一个表中最多可以有16个索引,最大索引长度为256字节。 对于CHAR和VARCHAR类型的列可以索引列的前缀。这样,索引的速度更快,并且比索引整个列所占用的空间要少。 可以在多个列上创建索引,索引列最多可以由15个列组成。 只有当表使用InnoDB、BDB或MyISAM存储引擎时,才能向具有NULL、TEXT或BLOB的列添加索引。 4.1 索引概述 4.1.3 索引的分类 在MySQL中,大多数索引都是以B-树方式存储的,这种方式构建为多个节点的一棵树。顶部的节点为索引的起始点,称为根。每个节点中包含索引列的几个值,节点中的每个值指向另一个节点,或者指向表中的一行,一个节点中的值必须是有序排列的。指向一行的节点称为叶子页。叶子页本身也是相互连接的,一个叶子页包含一个指针,该指针指向下一组。索引中的节点是存储在文件中的。在MySQL中,一个表中的索引都保存在同一个索引文件中。如果在表添加或删除一行,或者更新表中的值,MySQL会自动地更新索引,因此索引始终与表的内容保持一致。 以B-树方式存储的索引有以下几种主要类型。 普通索引(INDEX):这是最基本的数据类型,它没有唯一性之类的限制,创建普通索引时使用关键字INDEX。 唯一索引(UNIQUE):这种索引与普通索引基本相同,所不同的是,索引列的值不能重复,即必须是唯一的。创建唯一索引时使用关键字UNIQUE。 主键(PRIMARY KEY):这也是一种唯一索引,但一个表只能有一个主键。主键通常是在创建表时设置,也可以通过修改表来设置主键。创建主键时使用关键字PRIMARY KEY。 全文索引(FULLTEXT):在定义全文索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。全文索引只能在TEXT、CHAR或VARCHAR类型的列上创建,并且只能在MyISAM表中创建。全文索引可以在创建表或修改表时创建。 空间索引(SPATIAL):这是在MyISAM表的空间数据类型的字段上建立的索引。MySQL支持4种空间数据类型。创建空间索引时要使用SPATIAL关键字进行扩展。 4.1 索引概述 4.1.4 索引的设计原则 索引并非越多越好,一个表中如有大量的索引,不仅占用磁盘空间,而且会影响数据增删改操作的性能,因为当表中数据更改时索引也会进行调整和更新。 避免对经常更新的表设置过多的索引,并且索引中的列尽可能少。对于经常查询的字段应创建索引,但要避免添加不必要的字段。 数据量小的表最好不要索引,由于数据量小,查询花费的时间可能比遍历索引的时间还要短,索引可能不会产生优化效果。 在条件表达式中经常用到的不同值较多的列上创建索引,在不同值很少的列上不要创建索引。 当唯一性是某种数据本身的特征时应创建唯一索引,使用唯一索引可以保证定义的列的数据完整性,从而提高查询速度。 在频繁进行排序或分组的列上创建索引,如果要排序的列有多个,可考虑在这些列上创建组合索引。 4.

资源预览图

(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
1
(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
2
(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
3
(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
4
(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
5
(中职)MySQL 8.0数据库管理与应用第4章教学课件(工信版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。