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

网站关键词在哪里修改网站建设80hoe

网站关键词在哪里修改,网站建设80hoe,企业推广类网站,网站常用的蓝色Mysql的索引是数据库优化当中一个非常核心的概念,同时索引的底层也是java面试当中常见的考点之一,因此今天小编就来和大家分享与索引相关的知识点1.索引的概念m索引是数据库中一种特殊的数据结构,用于快速定位数据,减少全表扫描的…

Mysql的索引是数据库优化当中一个非常核心的概念,同时索引的底层也是java面试当中常见的考点之一,因此今天小编就来和大家分享与索引相关的知识点

1.索引的概念m

      索引是数据库中一种特殊的数据结构,用于快速定位数据,减少全表扫描的次数,提高查询效率,带入我们的平常生活之中,索引就相当于一本字典的目录,假设我们没有目录就需要逐一翻页查找,而拥有了目录,我们就可以快速定位到所需要的数据,这在效率上提升了不少。

2.索引的结构

     索引的结构往往是通过一些能够快进行快速查询的数据结构来实现,比如哈希表,二叉排序树,平衡二叉树,红黑树,b树,b+树等等,不过在如此之多的数据看结构当中Mysql依旧选择了我们的b+树,接下来我就来对这些数据结构逐一做优缺点的分析。

    Hash表

    优点:通过key值来进行键值秒杀查找数据,时间复杂度是O(1)

    缺点:   完全无序无法进行排序,也不能进行范围查询     

   

    二叉排序树

    优点:由于左节点大于根,右节点小于根,因此二叉数的中序排序是有序的,能排序,也可以做范围查询,时间复杂度O(log n);

    缺点:  但在数据插入时会退化成链表,导致查找的性能下降。

   

    平衡二叉树

     优点:每次插入数据后都会做旋转,严格平衡(左右子树高度差≤1),可以有效防止在极端情况       下,时间复杂度是O(log n)。

     缺点:但是平衡二茶树追求绝对的平衡,因此无论在删除还是插入的操作,都会导致平衡二叉树       去频繁的左旋右旋来保证二叉树的平衡,这会带来大量的磁盘io也是十分消耗cpu的性能的。

     红黑树

     优点:红黑树本身也是二叉平衡树的一种,通过变色旋转来保持平衡,但红黑树不追求绝对的平       衡所以会大大降低磁盘io,进而提高性能,时间复杂度是O(log n)。

     缺点:但红黑树本身依旧只是二叉树,二叉树的孩子只能有两个,这也就意味着当红黑树存储       大量数据的时候,就会导致树高升高过快,而二叉树的查找性能是和树高直接相关的,也就是       说,在存储数据达到一个限度时,红黑树的性能其实是相对较差的。

    

     B树(多路平衡排序树)

     优点:节点既存数据,又存索引,且有n个孩子节点,可以降低树高的问题,显著的提升效率。

     缺点:但范围查询需要中序回溯,磁盘随机 IO 多,依旧具有一定的效率问题。

    B+树

    优点:非叶子节点存储索引,而叶子节点用来存储数据,而这样非叶子节点可存储的数据就会更      多,同时树高就能降低,同时由于数据是存储在双向链表当中的,因此数据查询只需要遍历双        向链表就可以获取到,而不用回溯整个数据。

3.索引的分类

     索引的分类主要包含了聚簇索引和非聚簇索引以及覆盖索引,聚簇索引和非聚簇索引的区别就是聚簇索引的节点存储了索引包括其对应的数据,而非聚簇索引是将索引值和数据分开存储,而覆盖索引是一个逻辑概念指的是任意索引满足“查询列被索引全部包含”。

     在了解这些之后我们需要知道sql查询中的一个常见问题,那就是回表查询的问题,例如在查询某个数据时无法直接查到数据,而是要通过查询id后再通过id的索引树,再查询到数据,而这个十分耗时的过程就是回表。

    因此大多的sql优化都是为了避免回表查询,我们需要多构建多个字段组成的联合索引去达成覆盖索引的效果,来达到避免回表的效果。

4.最左前缀匹配法则

    核心就是对联合索引 (a,b,c),MySQL 只能按“从左往右的连续片段”去用索引,跳过左边的列,后面就失效。

    联合索引底层就是一棵 B+Tree,先按 a 排序,a 相同再按 b 排序,b 相同再按 c 排序。

  • 若查询条件没有 a,整个树是“乱序”的,无法走索引。

  • 缺少中间列,则右侧子树失去有序性,只能把左侧部分当“索引截断”使用。

5.索引失效问题

     即使创建了索引,以下情况也可能导致索引失效,变成全表扫描:

6.什么情况下需要添加索引

  • 频繁作为查询条件的列(WHERE, JOIN, ORDER BY, GROUP BY)。

  • 数据量较大(万级以上)。

  • 列的重复值较少(高选择性)。

7.怎么优化和定位索引

   可以打开mysql的慢查询日志,并设置规定的判断为慢SQL的时间,进而用explain函数解析SQL语句,最后根据结果做优化。

今天的分享就到这里了,希望这篇博客能给你一些帮助,让你对关于 sql索引的问题得到进一步的提升,在面试的时候能从容面对面试官。

http://www.dtcms.com/a/570053.html

相关文章:

  • 企业数据服务新选择:“五度易链” SaaS/API/ 本地化部署方案适配全规模需求
  • 【JUnit实战3_27】第十六章:用 JUnit 测试 Spring 应用:通过实战案例深入理解 IoC 原理
  • 网站源码模板免费网站服务器2020
  • ftp怎么连接网站空间如何建立外贸网站
  • 不同防滑设计在复杂牙拔除中的效能评估
  • 基于springboot的精准扶贫管理系统开发与设计
  • 电子学会青少年软件编程(C/C++)5级等级考试真题试卷(2025年9月)
  • linux系统rsync文件传输
  • 服务器建站用哪个系统好新闻稿件
  • 基于51单片机的宠物喂食器的设计与实现(论文+源码)
  • 建设网站入不入无形资产云南建设厅网站监理员培训
  • 佛山企业网站建设制作网页案例
  • Maven基础(二)
  • Java大厂面试真题:Spring Boot+微服务+AI智能客服三轮技术拷问实录(四)
  • 神领物流v2.0-day3-运费微服务笔记(个人记录、含练习答案、仅供参考)
  • 网站建设服务费计入会计科目做电影网站需要多大空间
  • 电机东莞网站建设营销策划公司有哪些职位
  • 《AI基础》
  • 网络推广一般怎么收费东莞网站优化制作
  • 技术支持 滕州网站建设苏州专业网站建设定制
  • 【软考架构】案例分析-管道过滤器、仓库架构风格,从数据处理方式、系统的可扩展性和处理性能三个方面对这两种架构风格进行比较与分析
  • 一种高效的端到端计算框架:用于生成心电图校准的人体心房电生理容积模型|文献速递-文献分享
  • 建一个网站需要多少钱?云梦网站建设
  • 使用 Shoelace 公式结合球面几何计算地球上任意多边形的面积
  • MCP (Model Context Protocol) 框架介绍文档
  • JAVA练习题day64
  • 小小电能表,如何撬动家庭能源革命?
  • 建设银行网站明细多长时间怎样做网站导购
  • 巴南市政建设网站tp5做企业网站
  • LVGL显示gif动图导致MCU进入HardFault_Handler问题(已解决!)