美文网首页
mysql选错索引

mysql选错索引

作者: 中2庸 | 来源:发表于2021-12-13 23:03 被阅读0次

为什么会出现选错索引

优化器会判定当前执行的最优方式,主要包括考虑扫描的行数、是否使用临时表、是否需要排序等;

优化器的逻辑

  扫描行数是优化器考虑的指标之一,那扫描的行数从哪来?基于采样统计,即这个统计信息就是索引的“区分度”。显然,一个索引上不同的值越多,这个索引的区分度就越好。而一个索引上不同的值的个数,我们称之为“基数”(cardinality)。也就是说,这个基数越大,索引的区分度越好。
  但是,采样会导致统计数据不准确,通过show index from table看下基数统计信息,为了解决统计信息不对,可通过analyze table t 命令修正,用来重新统计索引信息。

问题如何解决

  当出现索引选错的情况下,可以根据explain看下sql执行情况。对于索引选错的时候:1是可以使用force index进行强制走索引,2是可以考虑修改语句,引导 MySQL 使用我们期望的索引,3是删除不必要的索引或者增加合适的索引

相关文章

  • 丁奇-MySQL实战读书笔记10

    MySQL为什么有时候会选错索引? 1:MySQL选错索引,啥意思? 我们认为使用K索引检索的速度会更快的,但是M...

  • mysql选错索引

    为什么会出现选错索引 优化器会判定当前执行的最优方式,主要包括考虑扫描的行数、是否使用临时表、是否需要排序等; 优...

  • 10 - MySQL选错索引

    关键字 索引选择 0.错误情况 首先,建立一个简单的表,表中有 a、b 两个字段,并且分别建立了索引: 然后,我们...

  • 为何MySQL会选错索引

    在实际的生产环境中,给MySQL的字段加索引让查询的效率更高,我们往往会给MySQL的表字段加索引。MySQL具体...

  • mysql听讲(十)

    本文源自 极客网站 的某知名大佬讲mysql,整理一下心得和重点。 第10节 mysql为什么会选错索引 mys...

  • mysql竟然也会选错索引

    我们都知道一张表可以建很多索引,我们在执行一次查询时并没有执行使用哪个索引,是谁在帮助我们决定使用什么索引?是my...

  • 案例分析之mysql选错索引

    前言案例取自极客时间《mysql45讲》 案例 模拟执行器分析查询语句 场景复现 奇了怪了,此时没用索引,进行了全...

  • MySQL索引及查询优化书目录

    MySQL索引的原理之索引目的 MySQL索引的原理之索引原理 MySQL索引的原理之索引的类型 MySQL索引的...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL索引的使用

    MySQL索引 MySQL索引可以快速提高MySQL的检索速度。索引分单列索引和组合索引单列索引:即一个索引只包含...

网友评论

      本文标题:mysql选错索引

      本文链接:https://www.haomeiwen.com/subject/cgtufrtx.html