当前位置:网络安全 > 【第33期】我们分别谈谈联合指数有效和失败的条件

【第33期】我们分别谈谈联合指数有效和失败的条件

  • 发布:2023-10-04 10:30

2022年5月17日 3:45 pm • 面试问题 • 阅读2 点击上方“Java面试题精选”,关注公众号 面试时画图,查漏补缺 >>额外编号:以前的面试题,10道为单位,放在这个公众号菜单栏->面试题中。有需要的欢迎您浏览。 本题测试指数的有效条件和失效条件。这样的问题其实是非常有意义的。我建议你以后面试其他合伙人的时候多关注一下这类问题。这比检查一般概念性问题要好得多。 它可以粗略地检查应聘者是否注重优化自己编写的程序以提高代码质量和程序性能,或者是否只是做了简单的简历。 联合索引失效的条件 联合索引也称为复合索引。两个或多个列上的索引称为复合索引。 对于复合索引:MySQL 从左到右使用索引中的字段。查询只能使用索引的一部分,但只能使用最左边的部分。例如,索引是键索引(a,b,c)。它可以支持三种组合搜索:a |一个,b | a、b、c,但不支持b、c中的搜索。当最左边的字段是常量引用时,索引有效。 在索引中使用附加列可以缩小搜索范围,但是使用具有两列的索引与使用两个单独的索引不同。 复合索引的结构类似于电话簿,其中一个人的名字由名字和姓氏组成。电话簿首先按姓氏对排序,然后对具有相同姓氏的人按名字排序。如果您知道自己的姓氏,电话簿将非常有用;如果您同时知道自己的名字和姓氏,则电话簿会更有用;但如果您只知道名字而不知道姓氏,则电话簿毫无用处。 因此,在创建复合索引时,应仔细考虑列的顺序。当搜索索引中的所有列或仅搜索前几列时,复合索引非常有用;在搜索任何后续列时它们没有用。 例如:建立姓名、年龄、性别的复合索引。 创建表 myTest( 一个整数, bin 整数, 整数, 关键a(a,b,c) ); 1 从 myTest 中选择 *,其中 a=3、b=5、c=4; abc的三个索引都用在where条件中,都发挥作用。 2 从 myTest 中选择 *,其中 c=4 且 b=6 且 a=3;where中条件的顺序在查询前会被mysql自动优化,效果和上一句一样 3 从 myTest 中选择 *,其中 a=3 且 c=7; a使用了索引,b没有使用,所以c没有使用索引效果。 4 从 myTest 中选择 *,其中 a=3 且 b>7 且 c=3; 使用a,也使用b,不使用c。这里b是一个范围值,也是一个断点,但它使用索引本身。 5 从 myTest 中选择 *,其中 b=3 且 c=4; 因为没有使用a索引,所以这里的bc没有使用索引效果。 6 从 myTest 中选择 *,其中 a>4 且 b=7 且 c=9; 使用a,不使用b,不使用c。 7 select * from myTest where a=3 order by b; a使用了索引,b在结果排序时也使用了索引效果。 a 以下任何部分中的 B 均已排序。 8 select * from myTest where a=3 order by c; a使用了索引,但c这里并没有发挥排序作用,因为中间有断点。使用说明查看文件排序 9 select * from mytable where b=3 order by a; b不使用索引,a在排序时不发挥索引作用。 最后说一下索引失败的条件 不对索引列进行任何操作(计算、函数、(自动或手动)类型转换)将导致索引失败并转向全表扫描。 存储引擎不能使用索引范围条件右侧的列 尝试使用覆盖索引(只访问索引的查询(索引列和查询列一致))并减少 select * mysql使用不等于(!=或<>)时无法使用索引,会导致全表扫描 为 null,不为 null 则无法使用索引 像以通配符开头('%abc...')的MySQL索引失败会变成全表扫描操作。 问题:像‘%string%’时没有使用索引的问题如何解决? 不带单引号的字符串索引无效 从姓名='2000'的员工中选择*; 从姓名 = 2000 的员工中选择 *; 一般建议对于单键索引,尽量为当前查询选择过滤性较好的索引。 选择组合索引时,当前Query中过滤性最好的字段应该位于索引字段顺序中靠前的位置,效果越好。 选择组合索引时,尽量选择能够在当前查询的where子句中包含更多字段的索引。 尝试通过分析统计信息和调整查询的编写方式来达到选择合适索引的目的。 来源:https://www.sychzs.cn/qq_35275233 最后三期 【第30期】介绍一下HashMap的实现原理? 【第31期】了解什么是redis的雪崩、渗透、击穿? 【第32期】你知道Redis字符串是如何实现的吗? 而不是在网上搜索问题?还不赶快关注我们吧~ 版权声明:本文内容由网友自愿贡献,本文所表达的观点仅代表作者自己的观点。本网站仅提供信息存储空间服务,不拥有任何所有权,也不承担相关法律责任。如果您发现本站有任何涉嫌侵权/非法内容,请发送邮件举报。一经核实,该网站将立即删除。 本文由斑马博客整理。本文链接:https://www.sychzs.cn/index.php/post/6639.html

相关文章

最新资讯