讲深入浅出索引-总结[通俗易懂]

讲深入浅出索引-总结

大家好,又见面了,我是全栈君。

1.索引的作用:提高数据查询效率
2.常见索引模型:哈希表、有序数组、搜索树
3.哈希表:键 – 值(key – value)。
4.哈希思路:把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置
5.哈希冲突的处理办法:链表
6.哈希表适用场景:只有等值查询的场景
7.有序数组:按顺序存储。查询用二分法就可以快速查询,时间复杂度是:O(log(N))
8.有序数组查询效率高,更新效率低
9.有序数组的适用场景:静态存储引擎。
10.二叉搜索树:每个节点的左儿子小于父节点,父节点又小于右儿子
11.二叉搜索树:查询时间复杂度O(log(N)),更新时间复杂度O(log(N))
12.数据库存储大多不适用二叉树,因为树高过高,会适用N叉树
13.InnoDB中的索引模型:B+Tree
14.索引类型:主键索引、非主键索引
主键索引的叶子节点存的是整行的数据(聚簇索引),非主键索引的叶子节点内容是主键的值(二级索引)
15.主键索引和普通索引的区别:主键索引只要搜索ID这个B+Tree即可拿到数据。普通索引先搜索索引拿到主键值,再到主键索引树搜索一次(回表)
16.一个数据页满了,按照B+Tree算法,新增加一个数据页,叫做页分裂,会导致性能下降。空间利用率降低大概50%。当相邻的两个数据页利用率很低的时候会做数据页合并,合并的过程是分裂过程的逆过程。
17.从性能和存储空间方面考量,自增主键往往是更合理的选择。
思考题:
如果删除,新建主键索引,会同时去修改普通索引对应的主键索引,性能消耗比较大。
删除重建普通索引貌似影响不大,不过要注意在业务低谷期操作,避免影响业务.

由于索引中存储的是主键的key值,那么重建主键时,不但会重建主键,所有的普通索引也会重新构建,所以通常不建议重建索引,无普通索引的除外。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111658.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间「建议收藏」

    Unix/Linux环境C编程新手教程(22) C/C++怎样获取程序的执行时间

    2022年1月29日
    43
  • python垃圾回收机制原理

    python垃圾回收机制原理#python垃圾回收机制详解一、概述:  python的GC模块主要运用了“引用计数(referencecounting)”来跟踪和回收垃圾。在引用计数的基础上,还可以通过标记清除(markandsweep)解决容器(这里的容器值指的不是docker,而是数组,字典,元组这样的对象)对象可能产生的循环引用的问题。通过“分代回收(generationcollection)”以空间换取时间来进一步提高垃圾回收的效率。二、垃圾回收三种机制  1、引用计数  在Python中,大多数对象的生命周

    2022年6月24日
    26
  • 电气设计心得体会_原理图设计规范

    电气设计心得体会_原理图设计规范本博客将简述中兴通讯股份有限公司在原理图设计中需要注意的一些事项,其中包含了中兴设计开发部积累的大量硬件开发知识和经验,可以作为学习使用。硬件工程师可以学习并掌握检查条目的内容以及对条目的详细说明,学习部门经验。

    2025年9月18日
    5
  • javaEE与java的区别

    javaEE与java的区别好程序员Java培训分享JavaEE与Java的区别,有不少想要转行做程序员的朋友都会有一个疑问,JavaEE和Java是不是一种语言,这两者之间又有什么区别呢?  Java一共分为三个版本:JavaSE(标准版)、JavaEE(企业版)以及JavaME(微型版)。  其中JavaSE就是大家所熟知的Java根底,JavaEE在企业最常用的地方就是网站PC端的开发,而JavaME常用于移动端开发,现在熟悉的安卓系统便是用JavaME开发的。  Java既可以被编译,也可以被解说。经过

    2022年7月7日
    29
  • Javascript 调用MSAgent

    Javascript 调用MSAgent(本文假设您使用WindowsXP或Windows2000操作系统)不知在你漫游互联网时可曾在他开某个网页时看到一个小巫师,蓝色的袍子上满是金黄的星星和月亮十分可爱。他会向你问好,给你介绍这个网站。你一定奇怪,那个巫师是怎么做出来的。其实他并不是网页实现的而是微软的一个ActiveXObject叫MicrosoftAgent。今天,我们来讨论如何在你的网页中加入这个可爱的Agent(他叫Me…

    2022年6月15日
    29
  • 二分归并排序算法_并归排序法

    二分归并排序算法_并归排序法#include<iostream>#include<climits>usingnamespacestd;voidMerge(intSourceArry[],intStart,intMid,intEnd){ intlen1,len2;…

    2025年8月21日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号