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

【项目实现典型案例】12.数据库数据类型不一致导致查询慢

目录

  • 一:背景介绍
  • 二:索引失效复现
  • 四:索引实现的六种情况
    • 1、类型转换,函数
    • 2、ISNULL
    • 3、通配符开头
    • 4、范围查询
    • 5、组合索引,不符合最左匹配原则
    • 6、WHERE子句中的OR
  • 四:总结

一:背景介绍

MySql数据库的is_delete字段,两个不同的表,一个表内有217069条数据,另一个表中有76015条数据,查询速度很慢,排查到是索引失效的问题。
在这里插入图片描述
在这里插入图片描述

二:索引失效复现

where条件里,字符类型的列如果传递的是数据类型的话可以查出来数据,但是索引会失效
对应的索引
在这里插入图片描述
表中字段的数据类型
在这里插入图片描述
使用数值型进行查询
在这里插入图片描述
type中的ALL代表全表查询,用结果上来看我们添加的索引是没有生效的。因为我们在执行sql语句的时候is_delete赋的值是数值类型,但是数据库中是字符类型。所以进行了类型的转换。导致索引是没有生效的。
使用字符型进行查询
在这里插入图片描述
type中从ALL转换成了ref,索引失效了

四:索引实现的六种情况

1、类型转换,函数

在这里插入图片描述

2、ISNULL

在这里插入图片描述

3、通配符开头

在这里插入图片描述

4、范围查询

在这里插入图片描述

5、组合索引,不符合最左匹配原则

假设我们对字段 a,b 建立了一个组合索引(a,b)。
如果我们的查询是以下几种,则会正常走联合索引:

where a = 1;
where a = 2 and b = 2;
如果是如下几种则不会走组合索引:

where b = 2;
where b = 2 and a = 3;
通过对比我们可以看出,索引的生效是遵循最左匹配原则的。在使用的时候,必须从最左侧的索引开始。

6、WHERE子句中的OR

在这里插入图片描述

四:总结

遇到该类问题,要先明确什么是索引,以及哪种情况下会导致索引失效。

相关文章:

【项目实现典型案例】12.数据库数据类型不一致导致查询慢

目录一:背景介绍二:索引失效复现四:索引实现的六种情况1、类型转换,函数2、ISNULL3、通配符开头4、范围查询5、组合索引,不符合最左匹配原则6、WHERE子句中的OR四:总结一:背景介绍 MySql数据库…...

【大数据开发】报错汇总

目录 Hadoop Attempting to operate on hdfs namenode as root jps后没有namenode Hive Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V Caused by:o…...

HTTPS的加密原理(工作机制)

现在很多网站使用的都是HTTPS协议,比如CSDN他们为什么要使用HTTPS协议而不是继续使用HTTP协议呢?以及HTTPS都做了些什么?HTTP协议与HTTPS有哪些区别? 下面我来 讲解这些问题?(篇幅可能有些长,请求耐心观看,我以0基础的角度去讲解这些东西, 如果你有一定的基础前面的跳过就好…...

Git仓库迁移

背景 由于公司原来的gitee地址需要改完新的gitlab仓库,大量的服务模块已再本地进行开发,且存在大量分支进行维护,迁移要求历史提交记录也得同步,需要简单快捷一并完成各服务已经分支迁移。 一、在新的目标git中创建新代码仓 新…...

用CHATGPT生成C++面试题及答案

以下是C的面试题及其答案: 什么是C?C与C语言有什么区别? C是一种高级编程语言,是对C语言的扩展。C具有更强大的面向对象编程能力,支持类、继承、多态等特性。 什么是面向对象编程? 面向对象编程是一种编程…...

二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)

目录 二进制转十进制 十进制原理: 二进制转十进制计算: 八、十六进制转十进制 八、十六进制转十进制计算: 十进制转其他进制 十进制转二进制: 十进制转八进制: 十进制转十六进制: 不同进制之间的相互转…...

Redis技术详解

Redis技术详解 Redis是一种支持key-value等多种数据结构的存储系统。可用于缓存,事件发布或订阅,高速队列等场景。支持网络,提供字符串,哈希,列表,队列,集合结构直接存取,基于内存&…...

解决mybatis-plus updateById方法不能set null

原因 因为 MyBatis-Plus 自带的更新方法,都有对对象空值进行判空。只有不为空的字段才会进行数据更新 所以像updateById等方法,在更新时会自动忽略为null的字段,只更新非null字段值 但在某些情况下,我们的需求就是将数据库中的值…...

Linux的mysql 数据库及开发包安装

注意:以下操作都以 root 用户进行操作 直接按照下列步骤在命令行输入即可 下载 1: sudo yum install -y mariadb 2: sudo yum install -y mariadb-server 3: sudo yum install -y mariadb-devel 接下来配置文件:在相应…...

π-Day快乐:Python可视化π

π-Day快乐:Python可视化π 今天是3.14,正好是圆周率 π\piπ 的前3位,因此数学界将这一天定为π\bold{\pi}π day。 π\piπ 可能是最著名的无理数了,人类对 π\piπ 的研究从未停止。目前人类借助计算机已经计算到 π\piπ 小数…...

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取

【论文速递】ACM MM 2022 - 基于统一对比学习框架的新闻多媒体事件抽取 【论文原文】:Multimedia Event Extraction From News With a Unified Contrastive Learning Framework 【作者信息】:Liu, Jian and Chen, Yufeng and Xu, Jinan 论文&#xff…...

数据库分库分表

一、为什么要分库分表 如果一个网站业务快速发展,那这个网站流量也会增加,数据的压力也会随之而来,比如电商系统来说双十一大促对订单数据压力很大,Tps十几万并发量,如果传统的架构(一主多从),主库容量肯定无法满足这么高的Tps,业务越来越大,单表数据超出了数据库支持…...

【C缺陷与陷阱】----语义“陷阱”

💯💯💯 本篇处理的是有关语义误解的问题:即程序员的本意是希望表示某种事物,而实际表示的却是另外一种事物。在本篇我们假定程序员对词法细节和语法细节的理解没有问题,因此着重讨论语义细节。导言&#xf…...

JavaWeb--VUE

VUE1 概述2 快速入门3 Vue 指令3.1 v-bind & v-model 指令3.2 v-on 指令3.3 条件判断指令3.4 v-for 指令4 生命周期5 案例5.1 需求5.2 查询所有功能5.3 添加功能目标 能够使用VUE中常用指令和插值表达式能够使用VUE生命周期函数 mounted 1 概述 接下来我们学习一款前端的框…...

2分钟彻底搞懂“高内聚,低耦合”

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...

网络编程UDP TCP

定义:关注底层数据的传输 区分网页编程:关注上层应用 端口号:区分软件 2个字节 0~65535表示端口号 同一协议下端口号不能冲突 8000以下称为预留端口号,建议之间设置端口号为8000以上 常见的端口号: 80:http 8080:tomcat 3306:mysql 1521:oracle InetSocketAddress:此类实现IP套…...

【2023-Pytorch-检测教程】手把手教你使用YOLOV5做电线绝缘子缺陷检测

随着社会和经济的持续发展,电力系统的投资与建设也日益加速。在电力系统中,输电线路作为电能传输的载体,是最为关键的环节之一。而绝缘子作为输电环节中的重要设备,在支撑固定导线,保障绝缘距离的方面有着重要作用。大…...

交叉编译(NDK)

文章目录前言Android-NDK使用NDK目录结构主流的Android NDK交叉编译前言 交叉编译是指在一种计算机体系结构上编译和构建应用程序,但是生成的可执行文件和库是针对另一种不同的体系结构,比如ARM、MIPS、PowerPC、x86 等。 常见的交叉编译工具集&#x…...

【数据库】MySQL 解读事务的意义及原则

目录 1.事务的概念 2.为什么要用事物 3.使用 4.事务的原则(ACID) 4.1原子性(Atomicity) 4.2一致性(Consistency) 4.3持久性(Durability) 4.4隔离性(Isolation…...

【Linux】冯诺依曼体系结构

冯诺依曼体系结构一、计算机结构体系来源二、冯诺依曼体系结构三、冯诺依曼体系结构中的数据流动一、计算机结构体系来源 研制电子计算机的想法产生于第二次世界大战期间,主要用来进行弹道计算,在"时间就是胜利"的战争年代,迫切需…...

【小白】git是什么?gitee和git和github的关系?

gitee问题一、git是什么?gitee和git和github的关系?问题二、能不能通俗易懂的说?问题一、git是什么?gitee和git和github的关系? Git是一种版本控制系统,用于管理文件的版本、记录文件的修改历史以及协同开…...

UDS 14229 -1 刷写34,36,37服务,标准加Trace讲解,没理由搞不明白

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...

【Android -- 软技能】聊聊程序员的软技能

什么是软技能? 所谓软技能,就是相对于「硬技能」而言的技能,对于程序员来说,「硬技能」就是计算机专业技术能力,软技能则是专业之外的所有技能,包括职业规划能力、处理人际关系能力、专业态度、做事的方式…...

【Java学习笔记】27.Java 抽象类

Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 抽象类除了不能实例化对象…...

Vite4 + Vue3 + vue-router4 动态路由

动态路由,基本上每一个项目都能接触到这个东西,通俗一点就是我们的菜单是根据后端接口返回的数据进行动态生成的。表面上是对菜单的一个展现处理,其实内部就是对router的一个数据处理。这样就可以根据角色权限或者一些业务上的需求&#xff0…...

MS(mbed l432KC)-->速通9个lab详细解析[5]

Exercise5 这次实验我们将正式接触到一个相对来说有点意思并且有点牌面的传感器了----->数码管。数码管是我们生活中非常常见的一种传感器,比如计时器,秒表,以及数字显示大屏幕,其实原理都跟数码管差不多。如果是没有单片机基础的同学,突然一下接触到相对来说比较常见…...

XXE漏洞复现

目录XML基础概念XML数据格式DTD基础定义DTD作用分类DTD实体实体的分类DTD元素XXE漏洞介绍实操如何探测xxe漏洞XML基础 概念 什么是XML 是一种可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的子集,可以用来标记数据、定义数据类型…...

初识C++需要了解的一些东西(2)

😁关注博主:翻斗花园第一代码手牛爷爷 😃Gitee仓库:牛爷爷爱写代码 目录🌍内联函数🌕内联函数概念🌖内联函数特性🌓auto关键字(C11)🌞类型别名⭐️auto简介☀️auto的使…...

全国程序员薪酬大曝光!看完我酸了····

2023年,随着互联网产业的蓬勃发展,程序员作为一个自带“高薪多金”标签的热门群体,被越来越多的人所关注。在过去充满未知的一年中,他们的职场现状发生了一定的改变。那么,程序员岗位的整体薪资水平、婚恋现状、职业方…...

改进YOLO系列 | CVPR2023最新Backbone | FasterNet 远超 ShuffleNet、MobileNet、MobileViT 等模型

论文地址:https://export.arxiv.org/pdf/2303.03667v1.pdf 为了设计快速神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,作者观察到FLOPs的这种减少不一定会带来延迟的类似程度的减少。这主要源于每秒低浮点运算(FLOPS)效率低下。并且,如此低的FLOPS主要…...

开通公司网站怎么开通/网络广告的特点

201701 20170124 arcgis server,忘记Manager用户名和密码的解决办法: 1、找到arcgis server的安装目录,目录指向\ArcGIS\Server\tools\passwordreset文件夹。文件夹下有一个cmd文件,名字叫做PasswordReset,主要用到两个命令&#…...

湖南网站建设企业/关键词优化师

const readline require(readline-sync);//引入用户输入功能console.log(请输入数组的长度&#xff1a;);//提示用户输入let length readline.question();//获取用户输入let arr [];//创建数组for (let i 0; i < length; i) {console.log(请输入数组的第${i 1}个数&…...

网站模板安装出现预先建设数据库/百度认证证书

本篇文章给大家带来的内容是关于Thinkphp5对接百度云对象存储 BOS(代码示例)&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。首先下载SDK包可以在 官网下载 &#xff0c;或者在项目根目录使用composer 。composer require ba…...

wordpress 搜索主题/成都专业的整站优化

现在的业界的标准&#xff0c;网页技术严格的三层分离&#xff1a;html就是负责描述页面语义的语言&#xff1b;css负责描述页面的样式&#xff1b;js负责描述页面的动态效果的。 HTML:除了描述语义什么都干不了&#xff0c;页面语义是什么 &#xff1a;文档中不知道谁是主标题…...

气动喷枪网站建设/百度竞价sem入门教程

文章目录 引言I 、iOS上传图片视图的封装【支持删除和添加】1.1 demo源码下载:1.2 计算cell的高度II、风险商户材料证明视图2.1 cellV的高度计算2.2 自定义collectionView1.3 UICollectionViewCellIII 、iOS自定义单选框【例子:选择购买发票套餐】3.1 计算cell的高度引言 本…...

怎么做免费推广网站/拓客引流推广

为什么要学习Spring的框架a&#xff1a; 方便解耦&#xff0c;简化开发   Spring就是一个大工厂&#xff0c;可以将所有对象创建和依赖关系维护&#xff0c;交给Spring管理 b&#xff1a;AOP编程的支持   Spring提供面向切面编程&#xff0c;可以方便的实现对程序进行…...