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

Mysql中索引优化和失效

什么是索引

要了解索引优化和索引失效的场景就要先了解什么是索引

索引是一种有序的存储结构,按照单个或者多个列的值进行排序,以提升搜索效率。

索引的类型

UNIQUE唯一索引

不可以出现相同的值,可以有NULL值。

INDEX普通索引

允许出现相同的索引内容。

PRIMARY KEY主键索引

不允许出现相同的值,且不能为NULL值,一个表只能有一个primary_key索引。

fulltext index 全文索引

上述三种索引都是针对列的值发挥作用,但全文索引,可以针对值中的某个单词,比如一篇文章中的某个词,然而并没有什么卵用,因为只有myisam以及英文支持,并且效率让人不敢恭维,但是可以用coreseek和xunsearch等第三方应用来完成这个需求。

Sql索引优化共有以下几种方法

  1. 通过explain 语句帮助选择更好的索引和写出更优化的查询语句。
  2. SQL语句中的IN包含的值不应该过多。
  3. 当只需要一条数据的时候,使用limit 1。
  4. 如果限制条件中其他字段没有索引,尽量少用or。
  5. 尽量用union all代替union。
  6. 不使用ORDER BY RAND()
  7. 区分in和exists、not in和not exists。
  8. 使用合理的分页方式以提高分页的效率。
  9. 查询的数据过大,可以考虑使用分段来进行查询。
  10. 避免在where子句中对字段进行null值判断。
  11. 避免在where子句中对字段进行表达式操作。
  12. 必要时可以使用force index来强制查询走某个索引。
  13. 注意查询范围,between、>、<等条件会造成后面的索引字段失效。
  14. 关于JOIN优化

 sql索引失效的场景

非最左匹配

最左匹配原则指的是,以最左边的为起点字段查询可以使用联合索引,否则将不能使用联合索引

错误模糊查询

模糊查询 like 的常见用法有 3 种:

  1. 模糊匹配后面任意字符:like '张%'
  2. 模糊匹配前面任意字符:like '%张'
  3. 模糊匹配前后任意字符:like '%张%'

而这 3 种模糊查询中只有第 1 种查询方式可以使用到索引

列运算

如果索引列使用了运算,那么索引也会失效

使用函数

查询列如果使用任意 MySQL 提供的函数就会导致索引失效

类型转换

如果索引列存在类型转换,那么也不会走索引,比如 address 为字符串类型,而查询的时候设置了 int 类型的值就会导致索引失效

使用 is not null

当在查询中使用了 is not null 也会导致索引失效,而 is null 则会正常触发索引的

相关文章:

Mysql中索引优化和失效

什么是索引 要了解索引优化和索引失效的场景就要先了解什么是索引 索引是一种有序的存储结构&#xff0c;按照单个或者多个列的值进行排序&#xff0c;以提升搜索效率。 索引的类型 UNIQUE唯一索引 不可以出现相同的值&#xff0c;可以有NULL值。 INDEX普通索引 允许出现相同…...

使用Python+OpenCV2进行图片中的文字分割(支持竖版)

扣字和分割 把图片中的文字&#xff0c;识别出来&#xff0c;并将每个字的图片抠出来&#xff1b; import cv2 import numpy as npHIOG 50 VIOG 3 Position []水平投影 def getHProjection(image):hProjection np.zeros(image.shape,np.uint8)# 获取图像大小(h,w)image.sh…...

Qt中程序发布及常见问题

1、引言 当我们写好一个程序时通常需要发布给用户使用&#xff0c;那么在Qt中程序又是如何实现发布的呢&#xff0c;这里我就来浅谈一下qt中如何发布程序&#xff0c;以及发布程序时的常见问题。 2、发布过程 2.1、切换为release模式 当我们写qt程序时默认是debug模式&#x…...

C语言第二十三弹---指针(七)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 指针 1、sizeof和strlen的对比 1.1、sizeof 1.2、strlen 1.3、sizeof 和 strlen的对比 2、数组和指针笔试题解析 2.1、⼀维数组 2.2、二维数组 总结 1、si…...

用HTML5 + JavaScript绘制花、树

用HTML5 JavaScript绘制花、树 <canvas>是一个可以使用脚本 (通常为JavaScript) 来绘制图形的 HTML 元素。 <canvas> 标签/元素只是图形容器&#xff0c;必须使用脚本来绘制图形。 HTML5 canvas 图形标签基础https://blog.csdn.net/cnds123/article/details/112…...

Science重磅_让大模型像婴儿一样学习语言

英文名称: Grounded language acquisition through the eyes and ears of a single child 中文名称: 通过一个孩子的眼睛和耳朵基于实践学习语言 文章: https://www.science.org/doi/10.1126/science.adi1374 代码: https://github.com/wkvong/multimodalbaby 作者: Wai Keen V…...

Java 数据结构篇-实现红黑树的核心方法

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 红黑树的说明 2.0 红黑树的特性 3.0 红黑树的成员变量及其构造方法 4.0 实现红黑树的核心方法 4.1 红黑树内部类的核心方法 &#xff08;1&#xff09;判断当前…...

【实战】一、Jest 前端自动化测试框架基础入门(中) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(二)

文章目录 一、Jest 前端自动化测试框架基础入门5.Jest 中的匹配器toBe 匹配器toEqual匹配器toBeNull匹配器toBeUndefined匹配器和toBeDefined匹配器toBeTruthy匹配器toBeFalsy匹配器数字相关的匹配器字符串相关的匹配器数组相关的匹配器异常情况的匹配器 6.Jest 命令行工具的使…...

【C语言 - 力扣 - 反转链表】

反转链表题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 题解1-迭代 假设链表为 1→2→3→∅&#xff0c;我们想要把它改成 ∅←1←2←3。 在遍历链表时&#xff0c;将当前节点的 next 指针改为指向前一个节点。由于节点没…...

ctfshow-php特性(web102-web115)

目录 web102 web103 web104 web105 web106 web107 web108 web109 web110 web111 web112 web113 web114 web115 实践是检验真理的 要多多尝试 web102 <?php highlight_file(__FILE__); $v1$_POST[V1]; $v2$_GET[v2]; $v3$_GET[v3]; $v4is_numeric($v2)and is…...

python系统学习Day1

section1 python introduction 文中tips只做拓展&#xff0c;可跳过。 PartOne introduction 首先要对于python这门语言有一个宏观的认识&#xff0c;包括特点和应用场景。 特点分析&#xff1a; 优势 提供了完善的基础代码库&#xff0c;许多功能不必从零编写简单优雅 劣势 运…...

Idea里自定义封装数据警告解决 Spring Boot Configuration Annotation Processor not configured

我们自定对象封装指定数据&#xff0c;封装类上面一个红色警告&#xff0c;虽然不影响我们的执行&#xff0c;但是有强迫症看着不舒服&#xff0c; 去除方式&#xff1a; 在pom文件加上坐标刷新 <dependency><groupId>org.springframework.boot</groupId><…...

【流程图——讲解】

流程图介绍 流程图介绍 流程图介绍 流程图是一种图表&#xff0c;它展示了工作流程或过程中的步骤顺序&#xff0c;它通常由不同的符号表示&#xff0c;每个符号都代表一个步骤或过程中的一个元素&#xff0c;流程图非常有用&#xff0c;因为它们可以提供清晰、视觉化的过程表…...

「计算机网络」物理层

物理层的基本概念 物理层的作用&#xff1a;尽可能屏蔽掉不同传输媒体和通信手段的差异物理层规程&#xff1a;用于物理层的协议主要任务&#xff1a;确定与传输媒体的接口有关的一些特性 机械特性电器特性功能特性过程特性 数据通信的基础知识 数据通信系统的模型 划分为…...

ARM与X86架构的区别与联系

文章目录 1.什么是CPU2.复杂指令集和精简指令集3.ARM架构与X86架构的比较3.1.制造工艺3.2 64位计算3.3 异构计算3.4 功耗 4.ARM和X86的发展现状Reference 1.什么是CPU 中央处理单元&#xff08;CPU&#xff09;主要由运算器、控制器、寄存器三部分组成&#xff0c;从字面意思看…...

蓝桥杯每日一题------背包问题(二)

前言 本次讲解背包问题的一些延申问题&#xff0c;新的知识点主要涉及到二进制优化&#xff0c;单调队列优化DP&#xff0c;树形DP等。 多重背包 原始做法 多重背包的题意处在01背包和完全背包之间&#xff0c;因为对于每一个物品它规定了可选的个数&#xff0c;那么可以考虑…...

牛客错题整理——C语言(实时更新)

1.以下程序的运行结果是&#xff08;&#xff09; #include <stdio.h> int main() { int sum, pad,pAd; sum pad 5; pAd sum, pAd, pad; printf("%d\n",pAd); }答案为7 由于赋值运算符的优先级高于逗号表达式&#xff0c;因此pAd sum, pAd, pad;等价于(…...

CIFAR-10数据集详析:使用卷积神经网络训练图像分类模型

1.数据集介绍 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成&#xff0c;每类 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为5个训练批次和1个测试批次&#xff0c;每个批次有10000张图像。测试批次正好包含从每个类中随机选择的 1000 张图像…...

《傲剑狂刀》中的人物性格——龙吟风

在《傲剑狂刀》这款经典武侠题材的格斗游戏中,龙吟风作为一位具有传奇色彩的角色,其性格特征复杂且引人入胜。以下是对龙吟风这一角色的性格特点进行深度剖析: 一、孤高独立的剑客气质 龙吟风的名字本身就流露出一种独特的江湖气息,"吟风"象征着他的飘逸与淡泊名…...

KVM和JVM的虚拟化技术有何区别?

随着虚拟化技术的不断发展&#xff0c;KVM和JVM已成为两种主流的虚拟化技术。尽管它们都提供了虚拟化的解决方案&#xff0c;但它们在实现方式、功能和性能方面存在一些重要的差异。本文将深入探讨KVM和JVM的虚拟化技术之间的区别。 KVM&#xff08;Kernel-based Virtual Mac…...

银行客户流失预警:用SMOTE与集成学习模型(如EasyEnsemble)应对数据不平衡挑战

银行客户流失预警&#xff1a;用SMOTE与集成学习模型应对数据不平衡挑战 在金融行业&#xff0c;客户流失预警一直是银行风控体系中的核心环节。当银行面临客户流失&#xff08;少数类&#xff09;远少于未流失客户&#xff08;多数类&#xff09;的情况时&#xff0c;传统的机…...

PingFangSC字体实战指南:从基础配置到性能优化全攻略

PingFangSC字体实战指南&#xff1a;从基础配置到性能优化全攻略 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件&#xff0c;包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC PingFangSC&#xff08;苹果平方简体&am…...

Sentaurus实战解析:SiC NMOS仿真中的关键参数设置与优化

1. SiC NMOS仿真基础与Sentaurus环境搭建 碳化硅(SiC)功率器件因其优异的耐高温、高压特性&#xff0c;正在电力电子领域掀起一场革命。作为第三代半导体材料的代表&#xff0c;SiC的临界击穿电场强度达到硅的10倍&#xff0c;热导率更是硅的3倍。但在实际器件开发中&#xff0…...

双向无线功率传输系统模型附Simulink仿真

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码及仿真咨询…...

3D建模快速上手:零门槛掌握TripoSR AI驱动开源工具

3D建模快速上手&#xff1a;零门槛掌握TripoSR AI驱动开源工具 【免费下载链接】TripoSR 项目地址: https://gitcode.com/GitHub_Trending/tr/TripoSR 在数字创作领域&#xff0c;3D建模曾是专业人士的专属技能&#xff0c;需要掌握复杂的软件操作和几何知识。但今天&a…...

从零理解自然数系统:用Python类模拟皮亚诺公理(含加法乘法实现)

从零构建自然数系统&#xff1a;用Python类实现皮亚诺公理与算术运算 在计算机科学中&#xff0c;自然数系统的构建是一个令人着迷的基础课题。当我们抛开编程语言内置的数字类型&#xff0c;仅用最基本的类和递归概念来重新定义自然数时&#xff0c;会惊讶地发现数学的抽象之美…...

InternLM2-Chat-1.8B多场景落地:跨境电商产品描述生成+多语言翻译实战

InternLM2-Chat-1.8B多场景落地&#xff1a;跨境电商产品描述生成多语言翻译实战 1. 跨境电商的痛点与AI解决方案 跨境电商卖家每天面临着一个共同的挑战&#xff1a;如何为成千上万的商品快速生成高质量的产品描述&#xff0c;并且还要满足不同语言市场的需求。传统的人工撰…...

Spring Batch 大数据量处理实战:从入门到精通

Spring Batch 大数据量处理实战&#xff1a;从入门到精通别叫我大神&#xff0c;叫我 Alex 就好。处理百万级数据不用愁&#xff0c;Spring Batch 让批处理变得优雅而高效。一、Spring Batch 基础架构 1.1 核心配置 Configuration EnableBatchProcessing public class BatchCon…...

3个核心功能解决Windows 11系统问题:Win11Debloat优化工具深度评测

3个核心功能解决Windows 11系统问题&#xff1a;Win11Debloat优化工具深度评测 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更…...

效率提升50%:OpenClaw+GLM-4.7-Flash的会议纪要自动化

效率提升50%&#xff1a;OpenClawGLM-4.7-Flash的会议纪要自动化 1. 为什么需要自动化会议纪要 作为技术团队负责人&#xff0c;我每周要参加至少8场会议。过去两年里&#xff0c;我尝试过各种会议纪要工具——从讯飞听见的语音转写&#xff0c;到Notion AI的摘要生成&#x…...