MySQL--联合索引应用细节应用规范
目录
一、索引覆盖
1.完全覆盖
2.部分覆盖
3.不覆盖索引-where条件不包含联合索引的最左则不覆盖
二、MySQL8.0在索引中的新特性
1.不可见索引
2.倒序索引
三、索引自优化--索引的索引
四、Change Buffer
五、优化器算法
1.查询优化器算法
2.设置算法
3.索引下推 ICP
4.MRR:Multi Range Read
六、索引应用规范
1.建立索引的原则
2.不走索引的情况
一、索引覆盖
以idx(a,b,c)为例
1.完全覆盖
where a= and b= and c=
where b= and c= and a=
where a= and b in() and c=
where a= and b= order by c=
where a= and b= and c>/<
2.部分覆盖
where a= and b>/< and c=
where a= and b=
where a=
where a= and c=
3.不覆盖索引-where条件不包含联合索引的最左则不覆盖
where b= and c=
where b=
where c=
二、MySQL8.0在索引中的新特性
1.不可见索引
建索引难,删索引易,为了避免轻易删掉索引,可以设为不可见
alter table city alter index idx_nn invisible;

2.倒序索引
where a order by b,c desc-->b为正排,c为倒排
这种情况在建立索引时可以---->idx(a,b,c desc)
三、索引自优化--索引的索引
AHI:自适应的HASH索引,根据缓冲区中索引页的热度,自动生成HASH索引表,快速锁定热点索引页在内存中的位置
四、Change Buffer
存储辅助索引的变更
将来需要用到的时候,自动在内存中进行merge合并,得到id值是目的
以前叫insert buffer,因为只对insert有效,现在对insert update delete都有效
五、优化器算法
1.查询优化器算法
select @@optimizer_switch;

2.设置算法
set global optimizer_switch='on/off';
3.索引下推 ICP
例如:where a= and b> and c=,正常情况下这种联合索引被b拦截后不会走到c的索引,但开启索引下推后可以对c进行索引,这是由于:
在mysql中,索引下推允许在存储引擎层过滤索引中的记录,而不是在server层进行,如果查询包含多个条件并且索引不是很精确时,索引下推可以在存储引擎层进行更多的过滤工作,从而减少不必要的IO.
如何开启:set global optimizer_swith='index_condition_pushdown=on';
4.MRR:Multi Range Read
辅助索引条件查询时,先扫描辅助索引,获得ID值,放在read_rnd_buffer中,由MRR进行排序后,回表查询
六、索引应用规范
1.建立索引的原则
1)必须有主键,主键选择业务无关的列
2)经常作为where条件列的要做索引,以及order by,group by,join on,distinct
3)最好使用唯一值多的列作为索引列,如果索引列重复值较多,可以考虑使用联合索引
4)列值长度较长的索引列,建议使用前缀索引 left(name,19) -->取name前19位
5)降低索引条目,不创建没有用的索引,不常使用的索引要清理
6)维护索引要避开业务繁忙期,用pt-osc
7)使用联合索引最左原则
2.不走索引的情况
1)没有查询条件,或者查询条件没建索引
select * from t1;
select * from t1 where 1=1;
2)查询结果集是原表中大部分数据,15%-25%以上,查询的结果集如果超过了总行数25%,优化器就觉得没必要走索引了
3)索引本身失效,统计信息不真实(过旧),对于表内容变化比较频繁的情况下,有可能会出现索引失效,一般是删除重建,如果有一条select语句平时查询很快,突然有一天很慢,应该是索引失效,统计信息不真实、
4)查询条件使用函数在索引列上,或者对索引列进行运算,+ - * / !。算数运算、函数运算、子查询,都不走索引
5)隐式转换导致索引失效,应引起重视,也是开发中常会犯的错误
select * from t1 where num='110' ——>走索引
select * from t1 where num=110 ——>不走索引
6)like “%_”:百分号在前面不走索引
相关文章:
MySQL--联合索引应用细节应用规范
目录 一、索引覆盖 1.完全覆盖 2.部分覆盖 3.不覆盖索引-where条件不包含联合索引的最左则不覆盖 二、MySQL8.0在索引中的新特性 1.不可见索引 2.倒序索引 三、索引自优化--索引的索引 四、Change Buffer 五、优化器算法 1.查询优化器算法 2.设置算法 3.索引下推 …...
【spring boot+Lazy ORM+mysql】开发一个数据库管理系统实现对应数据库数据查看和修改
【spring bootLazy ORMmysql】开发一个数据库管理系统实现对应数据库数据查看和修改 演示项目地址:http://124.222.48.62:30193/wu-smart-acw-ui/index.html#/login (admin/admin) 功能 用户登录注册新增、编辑数实例新增、编辑数据库信息…...
知识分享:隔多久查询一次网贷大数据信用报告比较好?
随着互联网金融的快速发展,越来越多的人开始接触和使用网络贷款。而在这个过程中,网贷大数据信用报告成为了评估借款人信用状况的重要依据。那么,隔多久查询一次网贷大数据信用报告比较好呢?接下来随小易大数据平台小编去看看吧。 首先&…...
【Day8:JAVA字符串的学习】
目录 1、常用API2、String类2.1 String类的特点2.2 String类的常见构造方法2.3 String类的常见面试题:2.3.1 面试题一:2.3.2 面试题二:2.3.3 面试题三:2.3.4 面试题四: 2.4 String类字符串用于比较的方法2.5 String类字…...
jetcache缓存
1 介绍 是阿里的双极缓存,jvm-->redis-->数据库 文档:jetcache/docs/CN at master alibaba/jetcache GitHub 2 注意事项 使用的实体类一定实现序列化接口定时刷新注解,慎用 它会为每一个key创建一个定时器 :场景为&…...
SQLSyntaxErrorException: FUNCTION dbname.to_timestamp does not exist
由于MySQL数据库高版本(如8.x)中有to_timestamp()函数,低版本中(如5.7.x)没有这个函数,服务运行报错。 自己创建函数实现功能,创建语句如下; DELIMITER // CREATE FUN…...
Borel-Cantelli 引理
翻译自大佬 https://huarui1998.com/Notes/math/borel-cantelli.html 1. 集序列的 lim inf \lim\inf liminf 和 lim sup \lim\sup limsup 类似于定义实数序列 { a k } \{a_k\} {ak} 的 lim inf \lim\inf liminf 和 lim sup \lim\sup limsup, …...
算法训练营第四十一天 | LeetCode 509 斐波那契数列、LeetCode 70 爬楼梯、LeetCode 746 使用最小花费爬楼梯
LeetCode 509 斐波那契数列 这题动规五部曲都定义得比较明确。首先是dp数组下标,题目中给定F(0) 0说明从0开始,dp[i]直接表示F(i)的值即可。递推公式也直接给出了,也给了开头两个作为递推基础的数值作为初始化依据。遍历顺序也指明是从前往…...
网络其他重要协议(DNS、ICMP、NAT)
1.DNS DNS是一整套从域名映射到IP的系统 1.1 DNS背景 TCP/IP中使用IP地址和端口号来确定网络上的一台主机的一个程序,但是IP地址不方便记忆,例如我们想访问百度就会在浏览器中输入baidu.com而不是百度的IP地址。于是人们发明了一种叫主机名的东西, 是…...
利用PyCSP3库(含大量全局约束)进行组合约束建模
文章目录 1. 什么是 PyCSP3 ?2. 安装方法(Windows)2.1 通过 Google_colab 直接运行2.2 通过 pip 进行安装3. 快速入门3.1 声明变量3.2 更新约束3.3 定义目标3.4 常用的全局约束1. 什么是 PyCSP3 ? PyCSP3 是 Python 中的一个库,用于对组合约束问题进行建模,包括 约束满足…...
解决updateByExample时属性值异常的问题(部分属性值没有使用占位符?进行占位,而是变成了属性的名称)
目录 场景简介代码片断实体类 报错信息排查原因解决测试过程解决方案 场景简介 1、程序将mybatis框架升级为3.5.9版本后执行updateByExample方法时报错 代码片断 Condition condition new Condition(MbCcsSessionConfig.class); condition.createCriteria().andEqualTo(&quo…...
[C++][algorithm][Eigen] 基于Eigen实现Softmax函数
1 简介 Softmax函数是机器学习和深度学习中一个非常重要的激活函数,它在多分类问题中尤其关键。Softmax函数能够将一个向量或一组实数转换成概率分布,使得每个元素的值都在0到1之间,并且所有元素的和为1。本博客文章《【Eigen】基于Eigen实现…...
一招教大家,如何移除受保护的excel工作表的编辑权限限制?
有时候,我们打开工作表发现只有部分单元格可以编辑,点击其他单元格都显示“您试图更改的单元格或图标受保护”,既没法正常编辑或下拉填充,也没有办法快捷筛选。这时候我们可以通过输入密码解除保护,就可以正常编辑了。…...
Python 全栈体系【四阶】(五十三)
第五章 深度学习 十二、光学字符识别(OCR) 2. 文字检测技术 2.3 DB(2020) DB全称是Differentiable Binarization(可微分二值化),是近年提出的利用图像分割方法进行文字检测的模型。前文所提…...
民国漫画杂志《时代漫画》第27期.PDF
时代漫画27.PDF: https://url03.ctfile.com/f/1779803-1248635258-b6a842?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!...
图论(四)—最短路问题(Dijkstra)
一、最短路 概念:从某个点 A 到另一个点B的最短距离(或路径)。从点 A 到 B 可能有多条路线,多种距离,求其中最短的距离和相应路径。 最短路径分类: 单源最短路:图中的一个点到其余各点的最短路径…...
用友NC linkVoucher SQL注入漏洞复现
0x01 产品简介 用友NC是由用友公司开发的一套面向大型企业和集团型企业的管理软件产品系列。这一系列产品基于全球最新的互联网技术、云计算技术和移动应用技术,旨在帮助企业创新管理模式、引领商业变革。 0x02 漏洞概述 用友NC /portal/pt/yercommon/linkVoucher 接口存在…...
部署Prometheus + Grafana实现监控数据指标
1.1 Prometheus安装部署 Prometheus监控服务 主机名IP地址系统配置作用Prometheus192.168.110.27/24CentOS 7.94颗CPU 8G内存 100G硬盘Prometheus服务器grafana192.168.110.28/24CentOS 7.94颗CPU 8G内存 100G硬盘grafana服务器 监控机器 主机名IP地址系统配置k8s-master-0…...
GEE27:遥感数据可用数据源计算及条带号制作
1.写在前面 🌍✨今天读了一篇关于遥感数据可用数据源计算及条带号制作的文章,结合着自己的理解,添加了一些内容。 2.GEE代码 📚📚这段代码的主要作用是利用Google Earth Engine平台,通过分析Landsat 8影…...
FURNet问题
1. 为什么选择使用弱监督学习? 弱监督学习减少了对精确标注数据的依赖,这在医学图像处理中尤为重要,因为高质量标注数据通常需要大量专业知识和时间。弱监督学习通过利用少量标注数据或粗略标注数据来训练模型,降低了数据准备的成…...
3分钟快速上手:用ComfyUI-MimicMotionWrapper实现专业级AI动作迁移
3分钟快速上手:用ComfyUI-MimicMotionWrapper实现专业级AI动作迁移 【免费下载链接】ComfyUI-MimicMotionWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-MimicMotionWrapper 你是否曾梦想过让普通人也能跳出专业舞者的优美动作?…...
AI Agent重构餐饮服务链:从排队超15分钟到响应<1.2秒的9大技术跃迁(行业首份效能白皮书)
更多请点击: https://kaifayun.com 第一章:AI Agent重构餐饮服务链:从排队超15分钟到响应<1.2秒的9大技术跃迁(行业首份效能白皮书) 传统餐饮服务链中,用户进店、点餐、支付、出餐、反馈等环节高度依赖…...
Nintendo Switch大气层系统完整教程:从零开始掌握自制系统
Nintendo Switch大气层系统完整教程:从零开始掌握自制系统 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 你是否曾想过,让手中的Nintendo Switch拥有无限可能&…...
Super IO:Blender批量导入导出终极指南,工作效率提升300%
Super IO:Blender批量导入导出终极指南,工作效率提升300% 【免费下载链接】super_io blender addon for copy paste import / export 项目地址: https://gitcode.com/gh_mirrors/su/super_io Super IO是一款革命性的Blender插件,它通过…...
市面上有哪些是真正性价比高的降AIGC软件(轻松压低AI生成疑似率)
最崩溃的不是查重难题,而是查重达标却AI率超标亮红灯!很多工具只会简单同义词替换、浅层改字,根本洗不掉AI专属句式、行文逻辑和高频模板话术,学校AIGC检测一查一个准,论文直接翻车。 本篇结合全网实测数据,…...
Unity热更新原理与方案选型:从AOT限制到HybridCLR实践
1. 热更新不是“打补丁”,而是游戏生命周期的呼吸系统很多人第一次听说Unity热更新,脑子里浮现的是“改个UI文字不用重发包”“修个崩溃不用上架审核”——这没错,但太浅了。我带过三支手游团队,从2017年用AssetBundle硬啃&#x…...
中国工业物理AI落地优势显著,江行智能全栈模型架构助力工业变革
中国工业物理AI的优势与落地情况中国工业物理AI的真正优势不在于模型参数,而在于全球12倍的工业机器人部署密度、两倍的发电量和密集的5G边缘节点。场景密度、基建底座和开源模型的合力,正推动物理AI从实验室走向规模化落地。江行智能提出的工业物理AI三…...
矿道遮挡重度干扰,无感定位碾压UWB穿透弱、断链频繁痛点
矿道遮挡重度干扰,无感定位碾压UWB穿透弱、断链频繁痛点矿山井下矿道蜿蜒曲折、岩壁岩体层层阻隔,支护钢架、采掘设备密集排布,叠加粉尘雾气、巷道拐角、纵深盲区等复杂条件,形成重度遮挡强干扰作业环境。数字孪生与视频孪生技术深…...
基于Intel Core处理器的高性能嵌入式系统定制开发实战指南
1. 项目概述与核心价值最近几年,嵌入式系统的边界被不断拓宽,从传统的工业控制到边缘计算、智能零售,对核心处理单元的要求也越来越高。单纯追求低功耗或极致成本,在很多场景下已经不够用了。我们常常需要在紧凑的空间里ÿ…...
Focus-DETR:基于前景特征选择的高效目标检测模型解析
1. 项目概述与核心痛点目标检测,这个计算机视觉领域的经典任务,如今正站在一个十字路口。一方面,以DETR(Detection Transformer)为代表的端到端检测范式,凭借其简洁优雅的架构和强大的性能,正迅…...
