一、基数是啥? Cardinality指的就是MySQL表中某一列的不同值的数量。 如果这一类是唯一索引,那基数 = 行数。 如果这一列是sex,枚举类型只有男女,那它是基数就是2 Cardinality越高,列就越有成为索引的价值。MySQL执行计划也会基于Cardinality选择索引。 通过下面的方式可以看到表中各列的基数。 比如这个经典的例子: 有一列为sex,那对于sex列中存储的值来说 非男即女,它的基数最大就是2。 那也就完全没有必要为sex建立索引。因为,为了提升你基于sex的查询速度,MySQL会为你选择的这个新索引创建一棵全新的B+Tree。但你sex只有两种值,对于My
2021-11-01 18:45:38 141KB mysql mysql执行计划 SQL
1
前言 在之前的面试过程中,问到执行计划,有很多童鞋不知道是什么?甚至将执行计划与执行时间认为是同一个概念。今天我们就一起来了解一下执行计划到底是什么?有什么用途? 执行计划是什么? 执行计划,简单的来说,是SQL在数据库中执行时的表现情况,通常用于SQL性能分析,优化等场景。 一. 执行计划能告诉我们什么? SQL如何使用索引 联接查询的执行顺序 查询扫描的数据函数 二. 执行计划中的内容 SQL执行计划的输出可能为多行,每一行代表对一个数据库对象的操作 1. ID列 ID列中的如果数据为一组数字,表示执行SELECT语句的顺序;如果为NULL,则说明这一行数据是由另
2021-10-14 19:06:14 100KB mysql mysql执行计划 mysql数据库
1
执行计划的ID1. id相同,执行顺序由上至下 id不同,如果是子查询,id的序号会递增,id的值越大优先级越高,越先被执行
2021-04-21 14:05:22 899KB mysql
1