db2 删除索引_MYSQL进阶——索引

索引模型

hash索引

hash索引主要适用于等值查询的场景,排序,模糊搜索等场景并不适用

有序数组

有序数组可用于非等值查询,排序等场景,但是由于写数据时需要对数组中的元素进行位移,所以一般用于静态数据的场景

二叉树

二叉树模型能够很好的解决写操作多时索引的维护,并且支持模糊查询,排序等操作

常用索引模型

MYSQL中最常用的存储引擎是InnoDB,InnoDB中常用的索引模型是B+树(二叉树的一种,实际上是n叉树)。

使用n叉树的好处

树结构进行搜索的时候,是一层一层进行搜索的,也就是说树的高度越高,搜索的次数越多,如果数据量比较大,二叉树的话高度会很高,所以采用n叉树

B+树原理

6e30ca583a8d95becf22800b87d5b157.png

n叉树

从图中可以看出,B+树的分叉上存的是一组范围的数据,且可以有多个节点,例如现在插入一条数据4,此时4的索引应该是在3和5之间的,这时有两种情况:

  1. 如果子节点允许的最大节点树超过两个,则将4放到3和5之间
  2. 如果子节点最多只允许放两个元素,那么此时需要将3和5所在的节点分裂成两个节点,然后再将数据放上去

对于上面说的第二种情况,就是页分裂,就是将原本放在一页的数据分裂成两页,此时的空间利用率变低了(因为有一些空位没有使用)。

有页分裂就有页合并,当我们做删除操作的时候,如果两页的数据都比较少,就可能会发生页合并。

索引类型

聚簇索引和二级索引(InnoDB)

聚簇索引即主键索引,二级索引即非主键索引,两个索引的区别可以用下面这个图来对比一下:

79772b668949b36c4df912f9f2cb4786.png

主键索引和非主键索引

图中ID是主键索引,k为非主键索引,从图中可以看出,它们的区别主要在叶子节点上,主键索引的叶子节点存储的是真正的数据行,但是非主键索引的叶子节点存储的是主键,在查询上它们的一个很大的区别是:

  1. 如果使用主键索引进行查询,可以直接获取到最后的数据
  2. 如果使用非主键索引进行查询,只能获取到id,还需要通过id再获取到数据行,这个过程称之为回表

覆盖索引

非主键索引会多一次回表查询,但是在一些场景下是可以避免回表的,就比如说查询的字段和条件字段都在索引上,那么就不需要进行回表,这种场景下对应的索引叫覆盖索引

索引原则

左侧原则

例如我们创建了一个联合索引(a,b,c),以后我们只使用a条件的时候或者使用a,b条件的时候也是能够使用该索引的

索引下推

索引下推是MYSQL5.6版本后的一个优化,例如现在有联合索引(a,b),有一个查询sql:

select * from T where a like 'pre%' and b = 'field';
  1. 无索引下推是先通过联合索引(a,b)筛选出a like 'pre%' 数据的id,然后回表遍历符合条件的数据筛选出b='field'的数据后返回
  2. 有索引下推是通过联合索引(a,b)筛选a like 'pre%'顺便看看b是否也同时满足条件,满足才回表查询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575295.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

react 导航条选中颜色_调整安卓手机的颜色以更好地查看一切

并非所有人都有相同的区分颜色的能力。我们对屏幕上色彩配置的需求甚至口味可能会因人而异。幸运的是,Android为我们提供了多种本地工具,能够调整手机的颜色。我们的手机显示数百万种音调,这些音调是由屏幕配置或终端如何解释从某些应用程序接…

linux进程调度之 FIFO 和 RR 调度策略

转载 http://blog.chinaunix.net/uid-24774106-id-3379478.html linux进程调度之 FIFO 和 RR 调度策略 2012-10-19 18:16:43分类: LINUX 作者:manuscola.beangmail.com 博客地址:bean.blog.chinaunix.net 最近花了10几天的时间&#xff0…

echarts 获取点击的y轴数值_有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物...

有机磷酸催化对醌的不对称直接加成反应合成轴手性芳基醌类化合物本文作者:Summer轴手性联芳基二醇骨架广泛存在于天然产物、生物活性分子、有用的手性配体以及催化剂中(Figure 1a),因此,轴手性联芳基二醇化合物的合成受到广泛关注且已经取得了…

H264解码的一个測试程序

网上看到的一个H264视频格式的解码測试程序,能够用来參考其逻辑流程。 代码例如以下: Test_Display_H264(){ in_fd open(H264_INPUT_FILE, O_RDONLY); //video file open fstat(in_fd, &s); …

spring框架 web开发_go语言web开发框架学习:Iris框架讲解(一)

Golang介绍Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。谷歌资深软件工程师罗布派克(R…

linux终端的背景_如何在终端显示图像缩略图 | Linux 中国

lsix 是一个简单的命令行实用程序,旨在使用 Sixel 图形格式在终端中显示缩略图。-- Sk不久前,我们讨论了 Fim[1],这是一个轻量级的命令行图像查看器应用程序,用于从命令行显示各种类型的图像,如 bmp、gif、jpeg 和 png…

混合App开发,HBuilder开发移动App

使用HBuilder开发混合App: Hbuilder:是一个在线打包工具,不需要在本地配置开发环境;直接将做好的网站,通过一些简单的操作,就能在线打包为一个App; 混合APP开发常见技术:Html5、Re…

fanuc roboguide_ROBOGUIDE软件:机器人产线输送带输送物料虚拟仿真操作

概述输送带在机器人生产线或工作站中是常见的物料传送设备,它能够将物料从一个工位自动传送到另一个工位,是实现自动化生产制造必不可少的装置设备之一。虚拟仿真是对真实的工业机器人生产线或工作站的图形化再现,因此,对于具有输…

双电阻差分电流采样_小小的采样电阻,还真有点门道!

电流检测电阻的基本原理根据欧姆定律,当被测电流流过电阻时,电阻两端的电压与电流成正比.当1W的电阻通过的电流为几百毫安时,这种设计是没有问题的.然而如果电流达到10-20A,情况就完全不同,因为在电阻上损耗的功率(PI2xR)就不容忽视了.我们可以通过降低电阻阻值来降低功率损耗,…

jpa in查询_优选在shopee虾皮怎么发货价格查询皮皮虾云仓

优选在shopee虾皮怎么发货价格查询皮皮虾云仓皮皮虾云仓物流系统为现代化管理系统,可集中化,高效化的处理本土店物流订单。物流系统可对接主流的的电商平台ERP可以实现高效的订单处理。如lazada,shopee,1688、速卖通、eaby、shopi…

html5+、ReactNative、Weex、Ionic之间的区别、(配置java、python、Android环境)、ReactNative(react-native-cli)、yarn、Weex

html5、ReactNative、Weex、Ionic之间的区别: html5和Ionic: 在开发原理上基本相同,都是需要先开发出一个完整的网站,再通过html5或Ionic提供的打包技术对网站进行打包成移动app,它们实际还是一个网站,并非…

delphi listview失去焦点后的颜色_阴阳师姑获鸟和惠比寿建模更新对比 爷爷帅了 觉醒后鸟姐颜值提升...

阴阳师体验服近期更新了人气式神姑获鸟还有惠比寿的相关建模,本次特别奉上有关这两位式神的建模形象对比图,对比后发现经过修改和优化之后,爷爷更帅了,而觉醒后的鸟姐颜值也有所提升,一起来看看吧。惠比寿觉醒前觉醒前…

kibana 显示 @timestamp 时间问题(utc or browser当前时间)自动转换显示

https://github.com/elasticsearch/kibana/issues/95 可以统一timestamp时间字段为当前信息时区的时间! http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-date-format.html 转载于:https://www.cnblogs.com/sunxucool/p/3939701.ht…

React简介、虚拟DOM、Diff算法、创建React项目、JSX语法、组件、组件声明方式、组件传值props和state、组件的生命周期

React简介: 前面只是简单介绍移动APP开发,后面还会继续深入介绍移动app开发;其中想要用ReactNative开发出更出色的应用,那么就得学好React,下面将介绍React: React 是一个由 Facebook 开发用于构建用户界…

去掉 edittext 长按全选_开封消毒湿巾全选

开封消毒湿巾全选   其实,带有杀菌效果的清洁产品大多通过降低微生物的繁殖力达到预期的杀菌效果,所添加的每种杀菌成分都针对特定细菌,无法杀灭所有细菌。如果产品中的杀菌剂浓度总是不能将细菌完全杀灭,就可能导致细菌对该类杀…

代数余子式之和怎么算_小明说养老 | 养老金怎么算之月平均缴费指数怎么来的?...

上一期小明分享了企业职工养老保险退休待遇怎么算,具体可戳小明说养老|养老金怎么算?小明来教你。在以张阿姨为例的计算举例中,提到张阿姨15年的平均缴费指数为0.8209。对这个平均缴费指数的概念提问较多,今天就来解释一下月平均缴…

ReactNative简介、开发环境、调试、常用组件、useState状态、FlatList组件、SectionList组件、Platform 模块、定义样式、图片组件、触摸事件、打包apk发布版

ReactNative简介: ReactNative是基于React语法来进行开发移动app的框架; ReactNative中提供了移动端专用的一些组件,我们要使用ReactNative固有的组件代替网页中使用的一些元素,如:div, p, img 都不能用了&#xff1…

odis工程师使用方法_傅里叶红外光谱仪常见故障维修及排除方法,你了解有多少种呢?...

傅里叶红外光谱仪在使用过程中难免会出现故障,那我们该怎么检修呢?赛默飞傅里叶红外光谱仪有些光谱仪器的使用说明书会给出光谱仪的常见故障及排查方法,有些光谱仪器还有自诊断功能,当傅里叶红外光谱仪不能正常工作时,…

微信小程序简介、发展史、小程序的优点、申请账号、开发工具、初识wxml文件和wxss文件

微信小程序介绍: 小程序简介: 小程序是一种连接用户与服务的方式,它能在微信内被便捷地获取和传播,具有出色的使用体验。 不需要下载安装,用户通过搜一搜或扫一扫就可以打开使用,使用完后退出即可。 小…

tia v15 添加项目_硬技能,TIA 博途软件界面的介绍

在前面的文章中给大家介绍了TIA 博途软件的安装包等介绍,这次小编给大家介绍一下TIA 博途软件的界面。#电工学习PLC#你知道吗,在博途软件的自动化项目任务的创建中,我们可以使用portal视图和项目视图。Portal视图是面向任务的视图&#xff0c…