学分高考 web前端

如何专业系统学Web前端?MySQL索引是怎么回事?

发布时间: 2022-03-08 18:28:03
如何专业系统学Web前端?MySQL索引是怎么回事?索引是数据库系统中管理一个排序的数据结构,以协助查询更新数据库表中数据。索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。下面就给大家简单梳理一下MySQL索引相关的知识点。

索引是什么?

在MySQL中,索引(index)也叫做“键(key)”,它是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,索引优化是对查询性能优化最有效的手段。

索引的工作原理

在MySQL中,存储引擎用类似的方法使用索引,其先在索引中查找对应的值,然后根据匹配的索引记录找到对应的数据行,最后将数据结果集返回给客户端。

索引的作用

1、索引提高检索速度。

索引表是一种数据结构,存储着字段的值以及字段所对应记录的位置。例如,如果在顾客表的顾客姓名字段上设置了索引,DBMS就会创建一张索引表,表中有两个字段,分别存储着顾客姓名和位置。与原来的顾客表相比,索引表中的字段数更少,所以可以更快地进行数据的检索和排序。当查询数据时,DBMS先在索引表中进行数据的检索和排序,然后再根据位置信息从原来的数据表中把完整的记录取出来。索引所起的就是“目录”的作用。与图书的目录一样,数据库的索引也是一种能够高效地查找目标数据的机制。

2、索引降低增删改的速度。

由于MySQL在存储索引的时候,底层用的数据结构是B+树,B+树是一颗平衡树,如果我们对这颗树增删改的话,那肯定会破坏它的原有结构。要维持平衡树,就必须做额外的工作。正因为这些额外的工作开销,导致索引会降低增删改的速度。

创建好的索引需要注意什么?

1、最左前缀匹配原则。这是非常非常重要的原则,MySQL会一直向右匹配直到遇到范围查询(>,<,BETWEEN,LIKE)就停止匹配。

2、尽量选择区分度高的列作为索引,区分度的公式是 COUNT(DISTINCT col)/COUNT(*)。表示字段不重复的比率,比率越大我们扫描的记录数就越少。

3、索引列不能参与计算,尽量保持列“干净”。比如FROM_UNIXTIME(create_time) = '2016-06-06'就不能使用索引,原因很简单,B+树中存储的都是数据表中的字段值,但是进行检索时,需要把所有元素都应用函数才能比较,显然这样的代价太大。所以语句要写成: create_time = UNIX_TIMESTAMP('2016-06-06')。

4、尽可能的扩展索引,不要新建立索引。比如表中已经有了a的索引,现在要加(a,b)的索引,那么只需要修改原来的索引即可。

5、单个多列组合索引和多个单列索引的检索查询效果不同,因为在执行SQL时,MySQL只能使用一个索引,会从多个单列索引中选择一个限制最为严格的索引。

想了解更多MySQL索引相关知识点,快速进入Web前端开发行业,你可以专业系统的前端知识,让自己理论与实战兼备,更具竞争优势!

温馨提示:
本文【如何专业系统学Web前端?MySQL索引是怎么回事?】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号