iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL索引失效的原理是什么
  • 213
分享到

MySQL索引失效的原理是什么

2023-06-25 22:06:09 213人浏览 薄情痞子
摘要

这篇文章主要讲解了“MySQL索引失效的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql索引失效的原理是什么”吧!1、索引失效原因首先看看哪些情况下,将会导致查找不能利用索

这篇文章主要讲解了“MySQL索引失效的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Mysql索引失效的原理是什么”吧!

    1、索引失效原因

    首先看看哪些情况下,将会导致查找不能利用索引的有序性。

    假设一个表test中有a,b,c,d四个字段,c是主键。

    在a,b字段上建立联合索引(a,b):CREATE index idx_a_b on test(a,b); B+树联合索引.JPG

    MySQL索引失效的原理是什么

    可以得到的规律是:优先按a字段从小到大排序,a字段相等的按b字段从小到大排序;

    分析以下情况,索引是否会失效以及失效的原因:

    条件只包含b字段

    select * from test where  b=2;

    索引失效:

    MySQL索引失效的原理是什么

    显然,走的时候全文扫描,并没有使用索引。因为只看b字段的索引,是2,4,1,3,4,5,并不能利用索引的有序性快速定位。

    对a字段范围查询:

    select * from test where  a>1 and b=2;

    索引失效:

    MySQL索引失效的原理是什么

    可以看到,索引并没有完全失效,而是先利用索引定位到a的位置。因为这里的key_len是4,而联合索引的key_len是8。

    对a字段等值查询,b字段范围查询:

    索引失效:

    MySQL索引失效的原理是什么

    可以看到是using index并且key_len是8,也就是两个字段的索引都用到了,这也对应着联合索引排列的规律:a字段相同的情况下,b字段有序排列。

    以上几种情况可以总结为:不符合最左前缀匹配原则导致索引失效。

    最左匹配前缀保证可以利用到索引排序的有序性,而把等值查询放在前面,范围查询放在后面,是利用了[前缀字段相等的情况下,后面的索引字段有序]这个特性,是特殊意义下的最左前缀匹配原则。

    2、再来看看哪些情况会破坏索引的有序性。

    - 对索引字段做函数操作

    对索引字段做函数操作,比如y=f(x),并不能保证得到的y的值依然是有序的,在这种弄个情况下,优化器会放弃树的搜索功能,但是不排除优化器在发现该索引树比主键索引小很多的情况下,选择扫描这个索引。

    - 隐式类型转换

    mysql 中,字符串和数字做比较的话,是将字符串转换成数字。隐式类型转换的本质是对索引字段使用了CAST()函数,原理同上。

    - 隐式字符编码转换

    字符串编码转换的本质是使用了CONVERT() 函数。

    感谢各位的阅读,以上就是“Mysql索引失效的原理是什么”的内容了,经过本文的学习后,相信大家对MySQL索引失效的原理是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

    您可能感兴趣的文档:

    --结束END--

    本文标题: MySQL索引失效的原理是什么

    本文链接: https://www.lsjlt.com/news/306394.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • MySQL索引失效的原理是什么
      这篇文章主要讲解了“MySQL索引失效的原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL索引失效的原理是什么”吧!1、索引失效原因首先看看哪些情况下,将会导致查找不能利用索...
      99+
      2023-06-25
    • mysql联合索引失效的原理是什么
      当MySQL使用联合索引进行查询时,索引失效可能是由以下几个原因引起的: 数据分布不均匀:如果索引列的数据分布不均匀,即某些值的...
      99+
      2024-04-09
      mysql
    • MySQL索引失效原理
      目录1、索引失效原因2、再来看看哪些情况会破坏索引的有序性。 - 对索引字段做函数操作 - 隐式类型转换 - 隐式字符编码转换 3、总结 1、索引失效原因 首先看看哪些情况下,将会导...
      99+
      2024-04-02
    • mysql in索引失效的原因是什么
      这篇“mysql in索引失效的原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“m...
      99+
      2023-05-25
      mysql
    • 索引失效底层原理是什么
      这篇文章主要讲解了“索引失效底层原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“索引失效底层原理是什么”吧!单值索引B+树图单值索引在B+树的结构里...
      99+
      2024-04-02
    • 索引失效的原因是什么
      本篇内容主要讲解“索引失效的原因是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“索引失效的原因是什么”吧!MySQL数据是如何存储的聚集索引我们先建如下的一...
      99+
      2024-04-02
    • mysql中出现索引失效的原因是什么
      这篇文章将为大家详细讲解有关mysql中出现索引失效的原因是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。最佳左前缀原则——如果索引了多列,要遵守最左前缀原则。指的是查询要从索引的最左前...
      99+
      2023-06-08
    • mysql索引失效的原因
      小编给大家分享一下mysql索引失效的原因,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!索引对于MySQL而言,是非常重要的篇章。索引知识点也巨多,要想掌握透彻,需要逐个知识点一一击破,今天来...
      99+
      2024-04-02
    • MySQL的索引原理是什么
      本篇内容介绍了“MySQL的索引原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、索引的本质索引...
      99+
      2024-04-02
    • MySQL索引的原理是什么
      本篇内容介绍了“MySQL索引的原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!索引,可能让好很多...
      99+
      2024-04-02
    • MySQL索引原理是什么
      这篇文章主要介绍MySQL索引原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!摘要: 就一起来聊一聊MySQL索引。 什么是索引? 百度百科是这样描述的: 索引是为来加速对表...
      99+
      2024-04-02
    • MySQL索引失效的原因及解决方法是什么
      MySQL索引失效的原因可能有以下几种:1. 数据分布不均匀:如果某个列的数据分布不均匀,索引可能无法有效地过滤掉大部分的数据,导致...
      99+
      2023-10-25
      MySQL
    • MySQL索引失效原因及SQL查询语句不走索引原因是什么
      这篇“MySQL索引失效原因及SQL查询语句不走索引原因是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我...
      99+
      2023-03-07
      mysql sql
    • 容易引起oracle索引失效的原因是什么
      今天就跟大家聊聊有关容易引起oracle索引失效的原因是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。容易引起oracle索引失效的原因很多:&...
      99+
      2024-04-02
    • MySQL中索引的原理是什么
      这期内容当中小编将会给大家带来有关MySQL中索引的原理是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。索引目的索引的目的在于提高查询效率,可以类比字典,如果要查“m...
      99+
      2024-04-02
    • mysql索引为什么会失效
      这篇文章主要介绍了mysql索引为什么会失效,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql索引失效的几种情况:1、条件中有or,即使其...
      99+
      2024-04-02
    • mysql索引失效
      一、索引失效 当or左右查询字段只有一个是索引,该索引失效,只有当or左右查询字段均为索引时,才会生效 使用order by对数据库进行查询时,导致索引失效 ,order by走全表扫描比回表的时间更少 主键和唯一索引在同一列时,会导致索引...
      99+
      2023-09-06
      mysql 数据库
    • mysql索引的工作原理是什么
      本篇内容介绍了“mysql索引的工作原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  索引的工作...
      99+
      2024-04-02
    • mysql索引机制的原理是什么
      MySQL索引机制的原理是通过在数据表中创建索引,可以提高查询的效率。索引是一种数据结构,类似于书的目录,可以加快查询速度。当数据库...
      99+
      2024-04-09
      mysql
    • MySQL索引失效的原因有哪些
      MySQL索引失效的原因可能包括以下几点: 数据量过大:当数据量过大时,即使使用了索引,也可能因为需要扫描大量数据而导致索引失效...
      99+
      2024-04-09
      mysql
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作