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. 为什么选择使用弱监督学习? 弱监督学习减少了对精确标注数据的依赖,这在医学图像处理中尤为重要,因为高质量标注数据通常需要大量专业知识和时间。弱监督学习通过利用少量标注数据或粗略标注数据来训练模型,降低了数据准备的成…...
专业术语统计报告_多种能源发电协同发展管控模型及大数据分析研究
专业术语统计报告_多种能源发电协同发展管控模型及大数据分析研究 一、概要简析 【概要分析】 本文档《多种能源发电协同发展管控模型及大数据分析研究》围绕研究主题展开系统性的探讨。文档总字符数达141569,其中中文字符80856个,英文字词5332个&#x…...
ComfyUI-VideoHelperSuite:构建高性能视频处理管道的异步架构设计
ComfyUI-VideoHelperSuite:构建高性能视频处理管道的异步架构设计 【免费下载链接】ComfyUI-VideoHelperSuite Nodes related to video workflows 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-VideoHelperSuite ComfyUI-VideoHelperSuite是一个专门…...
3步破解QQ音乐加密限制:qmcdump工具全场景应用指南
3步破解QQ音乐加密限制:qmcdump工具全场景应用指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 一、解密…...
Apollo配置中心实战:从零到一的Docker化部署与核心配置详解
1. 为什么选择Apollo配置中心 在微服务架构中,配置管理一直是个让人头疼的问题。记得我第一次尝试用传统properties文件管理配置时,光是同步不同环境的配置就浪费了大半天时间。后来接触到Apollo,才发现原来配置管理可以这么优雅。 Apollo作为…...
OpenClaw命令行增强:gemma-3-12b-it解释复杂指令并自动补全
OpenClaw命令行增强:gemma-3-12b-it解释复杂指令并自动补全 1. 为什么需要命令行增强工具 作为一个常年与终端打交道的开发者,我经常遇到这样的困境:记得某个命令的功能,却想不起具体参数;或者面对复杂的管道操作时&…...
如何快速搭建REST API测试环境:JSONPlaceholder与json-server的完整指南 [特殊字符]
如何快速搭建REST API测试环境:JSONPlaceholder与json-server的完整指南 🚀 【免费下载链接】jsonplaceholder A simple online fake REST API server 项目地址: https://gitcode.com/gh_mirrors/js/jsonplaceholder 在当今快速发展的Web开发领域…...
极简配置:OpenClaw快速接入Phi-3-mini-128k-instruct的HTTP接口
极简配置:OpenClaw快速接入Phi-3-mini-128k-instruct的HTTP接口 1. 为什么选择Phi-3-mini-128k-instruct 上周我在调试一个自动化文档处理流程时,发现现有的大模型响应速度跟不上我的实时需求。经过几轮测试,最终选择了微软开源的Phi-3-min…...
为自动化测试 Agent 设计 Harness 断点调试接口
为自动化测试 Agent 设计 Harness 断点调试接口:黑盒Agent的透明化手术刀 关键词 自动化测试Agent、Harness测试框架、断点调试、黑盒Agent透明化、状态检查协议、事件驱动调试、Agent可观测性堆栈 摘要 随着大语言模型(LLM)驱动的自动化测试Agent(如SeleniumGPT、Playwr…...
Spotless许可证头管理终极指南:如何自动化年份更新与版权保护
Spotless许可证头管理终极指南:如何自动化年份更新与版权保护 【免费下载链接】spotless Keep your code spotless 项目地址: https://gitcode.com/gh_mirrors/sp/spotless Spotless是一款强大的代码格式化工具,能够帮助开发者自动管理许可证头&a…...
wx-dump-4j前端架构解析:React+Ant Design构建现代化管理界面
wx-dump-4j前端架构解析:ReactAnt Design构建现代化管理界面 【免费下载链接】wx-dump-4j 一款基于Java开发的微信数据分析工具。 项目地址: https://gitcode.com/gh_mirrors/wx/wx-dump-4j wx-dump-4j是一款基于Java开发的微信数据分析工具,其前…...
