开发者学堂课程【MySQL 实操课程:引擎的原理以及应用场景分析】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/717/detail/12820
引擎的原理以及应用场景分析
接下来给大家分享的是 MySQL 实操课程第八节,本节课主要包含以下内容。
1、索引的原理以及应用场景分析:
索引是什么?索引的主要用途?在实际操作中,索引在数据库中所起的作用?
2、MySQL 下索引的分类:
可以从不同维度分成不同类型,比方说大家可以通过索引所覆盖的列分为单列索引、符合索引或多列索引;根据索引的特点分为主建索引、唯一索引或普通索引等等,在讲解中会讲到类型索引的差异和在实践中怎样正确使用?
3、MySQL 下索引的创建与应用:
会举一个综合性的例子,在一个表中覆盖到不同索引,
4、索引的设计原则:
在明确索引的用法后,大家如何去更好的设计索引和使用索引?大部分人在设计和使用索引时,都会遇到一些问题,比如设计好的索引已经设置和上传好之后,没有任何作用的产生,这种情况可能是因为设计索引不合理所导致的。
一、索引的原理以及应用场景分析
讲索引之前先回顾一下之前所讲的,如何创建表和如何创建字段,字段的类型有哪些等等,这些都是大家在使用数据库时,不可或缺的一部分,也就是说在使用数据库的过程中需要先去创建数据库,表和设计字段以及字段的类型,还有一个更重要的问题,当大家在数据库进行检索时,会发现数据库检索的效率特别低,也就是说查询语句的时间很长。
此时需要考虑的是为了提高查询效率的办法,第一个想到的会是索引,索引类似于小时候接触的新华字典,大家或多或少都有接触,新华字典的最大特点是在字典的前面部分提供目录,一部分是可以根据拼音,可以找到需要找的汉字的页码,从多少页开始讲于此汉字所接近的目录,另一部分是根据偏旁,汉字的部首快速查找到中文所对应的页码,新华字典所提供的更像是索引的替代品,帮大家完成了索引的功能,引出以下索引的定义:
1、索引的定义
(1)索引是对数据库中一列或多列的值进行排序的一种结构,使用索引可以快速访问数据库表中的特定信息;
详解:
索引是一种结构,索引的用途可以快速访问数据库表中的特定信息,是多行同时进行扫描,这也是索引的优势;索引不一定是一列,有可能是多列所组成,在创建索引时,需要制定在哪个表,因为索引是创建在表上的,这是索引的特点。
(2)索引好比书的目录,通过目录你可以快速搜索到想要查找的内容。
2、索引的优点和缺点
(1)优点:
创建索引的一个重要原因是因为索引可以提高检索速度,比如对于查询条件,在查询表时,后面加上自动语音等于某一个值时,这种情况下便会用到索引,提高检索速度;
还有一些有依赖关系的赋值表,在做联合查询时,索引也可以提高检索速度;在分组或排序的查询中,也可以使用索引减少分组或排序的查询时间。
(2)索引有以下的缺点:
索引并不是用的多,好处多。对比书,书的目录会对书的纸张进行占用,对应数据库中的索引,索引会占用存储;书在更改和添加文章时,都会进一步对纸张进行占用,在数据库中,每一次更新、修改或新增时,都会重新对索引进行一次维护,索引在创建和维护时,需要消耗时间,消耗时间的长短根据数据量进行判断,数据量越大,消耗的时间越长;
会占用存储空间,书需要一定的物理空间,在每一次更新、修改或新增数据时,都会动态的去维护的索引,此时便会影响到数据维护效率。
以上便是大家提到的关于索引的定义以及应用场景