当前位置: 首页 > news >正文

汉口网站建设 优帮云营销网站类型

汉口网站建设 优帮云,营销网站类型,WordPress头像不能本地化,做个网站要钱吗前言 通过本篇博客的学习,我希望大家可以了解到 “索引” 是为了提高数据的查询效率。 索引的介绍 索引是为了提高查询数据效率的数据结构 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着…

前言

  • 通过本篇博客的学习,我希望大家可以了解到 “索引” 是为了提高数据的查询效率。

索引的介绍

  • 索引是为了提高查询数据效率的数据结构

索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

索引的作用

如下图所示:学生表 student 

执行一条sql语句(查询名为郑家谋 的出生年月日)

select birthday from student where stuName='郑家谋';

在不使用索引的情况下,我们要进行全文检索。

数据是一条条查找, 和目标条件比对,直到找到为止,这样的效率无疑是比较慢的。

也是因为如此,后面推出了索引。

那么索引是怎么样的呢?

在这里我先提一下:索引是一个B+tree 类型的数据结构

在这里,暂时把B+tree看作一个平衡二叉树。我们知道 平衡二叉树的特点

  • 左子结点小于根节点,根节点小于右子结点
  • 左右高度相差最大相差一

在我们查询数据时,我们拿目标数据,首先比较根结点存储的数据,如果比它大,就舍弃左子结点,和右子结点比较;如果比它小,和左子节点比较。以此类推,每次都舍弃一部分,这样查询效率就高了。

但实际上B+tree 数据结构 是在平衡二叉树的基础上,不仅保留了平衡二叉树的优点,同时也弥补了平衡二叉树的缺点。这个具体在下一篇博客讲B+tree的结构时,详细叙述。

索引的特点

优势

劣势

提高数据检索的效率,降低数据库的IO成本索引列也是要占用空间的
通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗。索引大大提高了查询效率,同时却也降低更新表的速度, 如对表进行INSERT、UPDATE、DELETE时,效率降低。

现在我们对索引的优势/劣势,详细的分析

优势

提高数据检索的效率,降低数据库的IO成本

理解

我们可以把我们使用的数据库图形化界面工具如datagrip 等 ,看作客户端。我们执行的每一条SQL语句,都可以看作向数据库服务器,发送请求服务器使用IO流读取数据,如果不使用索引,就需要去读全部的内容。这样会消耗大量的IO资源。称为全表扫描(全文检索);如果使用索引,就只需要读取目标数据降低了数据从磁盘(硬盘)读取到内存,这样读取的数据量减少

  疑问:在数据库查询数据,数据是从 磁盘读取到内存(最先查到结果)存储数据的不是在硬盘上吗,不应该从硬盘上读取吗

如果大家有像我一样的疑惑,以下是我 查到资料后的理解

1 硬盘和磁盘的关系

  • 磁盘包括硬盘也是可以存储数据的。在非技术上,磁盘和硬盘可以统一理解,都把它看成硬盘。在数据库中也是如此。

数据库查询数据的过程

  • 当数据库接收到一个查询请求时,它会首先检查所需的数据是否已经在内存(缓存)中。如果数据已经在内存中,数据库可以直接从内存中读取数据,这通常比从硬盘读取要快得多。
  • 如果数据不在内存中,数据库需要从硬盘上读取数据。这个过程称为“页缺失”(page miss),数据库会从硬盘上读取数据页到内存中,然后从内存中提供给处理器。
通过索引列对数据进行排序,降低数据排序的成本,降低CPU的消耗

理解

索引通常是有序的,这意味着数据已经被排序。如果查询请求需要返回排序后的结果,数据库可以直接利用索引的有序性来快速返回排序后的数据,而不需要额外的CPU资源来对数据进行排序。

劣势

索引列也是要占用空间的

理解

索引是一个数据结构,因此在硬盘中存储的不仅有数据库数据,还有索引数据。加大硬盘存储空间的占有

索引大大提高了查询效率,同时却也降低更新表的速度, 如对表进行INSERT、UPDATE、DELETE时,效率降低。

理解

虽然索引可以加快查询速度,但它们也会减慢数据的插入、更新和删除操作的速度。

原因如下

我认为索引本质上是为了查询表数据服务的,为了提高查询效率。因此当数据发生变化时(如插入、更新或删除),数据库系统不仅需要更新表中的数据,还需要更新所有相关的索引以保持数据的一致性。这个过程需要额外的时间和资源,尤其是在有大量索引或大量数据变动的情况下。

总的来说,索引是提高数据库查询效率的重要工具,但它们也带来了额外的存储和维护成本。在设计数据库时,需要根据具体的应用场景和需求来权衡是否使用索引以及该如何设计索引

本篇博客,简单的介绍了索引,下一篇博客,详细将索引的结构

http://www.yidumall.com/news/1162.html

相关文章:

  • 赣州网页设计师培训seo公司重庆
  • 网站静态和动态网站开发公司
  • 网站引用百度地图广州网站运营专业乐云seo
  • 营销型网站建设制作多少钱2023年9月疫情又开始了吗
  • 织梦网站做自动生成地图网络优化有前途吗
  • 网站建设合同附件格式关键词在线听免费
  • 北塘网站制作今日新闻热点10条
  • 烟台网站建设西安网络推广营销公司
  • 网站如何做电脑销售网站推广公司排名
  • 做网站 卖产品seo关键词排名报价
  • 云南省火电建设公司网站深圳网络广告推广公司
  • 北京专业网站建设网站百度快照优化排名
  • 动态网站开发期末考试题谷歌搜索引擎免费入口镜像
  • 网站建设如何测试2022十大热点事件及评析
  • 团员登录系统智慧团建合肥网站优化平台
  • .net网站吃内存设计模板网站
  • 推进门户网站建设工作会议上海搜索引擎优化seo
  • php怎么做网站快汽车软文广告
  • 珠海建站联系方式个人如何注册网站
  • 濮阳网站怎么做seo软文经典案例
  • 家政服务公司网站建设方案策划书郑州品牌网站建设
  • 自适应网站推广福州百度代理
  • 深圳 网站建设 销售想要网站推广版
  • 郑州威盟网站建设公司怎么样新浪网今日乌鲁木齐新闻
  • 网站新闻详细页面设计app拉新推广平台
  • 装修设计效果图网站网站友情链接的作用
  • 山东省城乡住房和建设厅网站百度推广怎么添加关键词
  • 北京好的网站开发app推广方式
  • 广州营销型网站建设公司代发百度首页排名
  • asp.net 音乐网站开发微信小程序开发多少钱