mysql怎么理解 选择率 如何理解?

介绍过索引的基本概念了解了唯一索引和普通索引的区别。继续来谈谈在不同的业务场景下,应该选择普通索引还是唯一索引?

假设维护User表每个人都有一个唯一嘚身份证号,而且业务代码已经保证了不会写入两个重复的身份证号如果用户系统需要按照身份证号查姓名,就会执行类似这样的SQL语句:

所以你一定会考虑在id_card字段上建索引。由于身份证号字段比较大不建议你把身份证号当做主键,那么现在有两个选择要么给id_card字段创建唯一索引,要么创建一个普通索引如果业务代码已经保证了不会写入重复的身份证号,那么这两个选择逻辑上都是正确的

**问题: ** 从性能的角度考虑,你选择唯一索引还是普通索引呢选择的依据是什么呢?

  • 索引的常见模型 哈希表:哈希表做索引可能出现散列冲突一種处理这种情况的方式就是链表法,同一个key拉出一个链表...

}

茬sql语句前面加上 explain就可以了;

+—-+————-+——-+——+—————+——+———+——+——+——-+ +—-+————-+——-+——+—————+——+———+——+——+——-+ +—-+————-+——-+——+—————+——+———+——+——+——-+

select查询的类型主要是区别普通查询和联合查询、子查询之类的复杂查询。

联匼查询所使用的类型

type显示的是访问类型,是较为重要的一个指标结果值从好到坏依次是:

一般来说,得保证查询至少达到range级别最好能达到ref。

指出mysql怎么理解能使用哪个索引在该表中找到行如果是空的,没有相关的索引这时要提高性能,可通过检验WHERE子句看是否引用某些字段,或者检查字段不是适合索引

显示mysql怎么理解实际决定使用的键。如果没有索引被选择键是NULL。

显示mysql怎么理解决定使用的键长度如果键是NULL,长度就是NULL文档提示特别注意这个值可以得出一个多重主键里mysql怎么理解实际使用了哪一部分。

显示哪个字段或常数与key一起被使用

这个数表示mysql怎么理解要遍历多少数据才能找到,在innodb上是不准确的

如果是Only index,这意味着信息只用索引树中的信息检索出的这比扫描整个表要快。

}

我要回帖

更多关于 mysql怎么理解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信