查询在什么情况下不⾛索引

数据库面试题

⾸先,我们可以说通过explain去排查⼀个慢查询,进⽽找到它的索引(参看第五题),当创建索引却不⾛索引时,我们就需要考虑到优化器的问题。

在⼀条单表查询语句真正执⾏之前,MySQL的查询优化器会找出执⾏该语句所有可能使⽤的⽅案,对就是所谓的执⾏计划。优化过程⼤致如下:

1.根据搜索条件,找出所有可能使⽤的索引

2.计算全表扫描的代价

3.计算使⽤不同索引执⾏查询的代价

4.对⽐各种执⾏⽅案的代价,找出成本最低的那⼀个

那么,有哪⼏种情况明明设了索引却不⾛索引呢?

假设索引为 (a,b,c)

ASC 和 DESC 索引混合使⽤的排序: select *

from tab order by a, b desc limit 10;

违背最左前缀原则: select * from tab where

b = '1';

WHERE ⼦句中出现⾮排序使⽤到的索引列:

select * from tab d = '1' order by a limit 10;

排序列包含⾮同⼀个索引的列: select * from tab order by a, d limit 10;

WHERE ⼦句中出现计算: select * from tab

where a * 4 = 2;

WHERE ⼦句中出现 null 值: select * from

tab where a = null;

WHERE ⼦句中使⽤ != 或 <> 操作符:

select * from tab where a != 1;

以上就是酷仔今天整理提供的MySQL面试题,希望为学习MySQL的同学提供了有用的面试素材,以后酷仔每日均会提供MySQL、Python及Web相关的习题。

混合索引_数据库面试题:查询在什么情况下不?索引-数据库知识点相关推荐

  1. mysql纵表 主键_数据库面试题-sql语句

    原标题:数据库面试题-sql语句 1,写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的. 答: → 解1: select top ...

  2. mysql 查询前10门课程_数据库面试题:如何查找每门课程的前3名?

    看到别人的面经里有类似这样一个问题,我自己试了下,感觉做不出来. DROP TABLE IF EXISTS `SC`; CREATE TABLE `SC` ( `SId` varchar(10) DE ...

  3. mysql查询学生平均成绩及其名次_数据库面试题:数据库查询语句

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...

  4. C# 联合查询_直击数据库面试题:数据库查询语句

    Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题 ...

  5. datagrid如何获取一行数据中的某个字段值_或许是全网最全面关于数据库面试题...

    原文: https://www.enmotech.com/web/detail/1/794/1.html 两万字全面论述数据库面试题(上) https://www.enmotech.com/web/d ...

  6. 2021最新MySQL数据库面试题

    为什么要使用数据库 数据保存在内存 优点: 存取速度快 缺点: 数据不能永久保存 数据保存在文件 优点: 数据永久保存 缺点:1)速度比内存操作慢,频繁的IO操作.2)查询数据不方便 数据保存在数据库 ...

  7. 计网/数据库面试题(更新中ing~~)

    计网/数据库面试题(更新中ing~~) <计算机网络> 1. OSI七层模型.设备 (传输层)协议的多路分用和复用 2. TCP/IP四层模型==五层模型 (传输层)TCP和UDP协议对比 ...

  8. SQL编程软件测试,编程程题库之软件测试8大常见数据库面试题

    原标题:编程程题库之软件测试8大常见数据库面试题 一.事务的四大特性 原子性,要么执行,要么不执行 隔离性,所有操作全部执行完以前其它会话不能看到过程一致性,事务前后,数据总额一致持久性,一旦事务提交 ...

  9. MySQL数据库面试题(2021最新版)

    文章目录:http://github.crmeb.net/u/defu 数据库基础知识 为什么要使用数据库 什么是SQL? 什么是MySQL? 数据库三大范式是什么 mysql有关权限的表都有哪几个 ...

最新文章

  1. 如何在CSDN MarkDown中居中显示并设置本地图像大小
  2. 01 背包问题 --- 待续 - -
  3. 【Python】8000字概括精髓,pandas必知必会50例
  4. 基于netty的websocket协议实现
  5. 对11位手机号进行3-4-4格式化
  6. spark on yarn提交任务后总是accepted以及通过yarn关闭application
  7. usr/bin/expect方式免密码登录和发送文件脚本
  8. 搭建Cockpit服务器,Linux集群管理工具,DevOps开发运维一体化集群系统/持续集成
  9. Java开发者的十大戒律
  10. ‘gperf‘ is missing on your system.
  11. 扫雷游戏网页版_如何成为扫雷高手,数学老师教你玩转这款复古小游戏
  12. 想学python但是有好多英文不认识?python常用英文单词都在这
  13. 《愤怒的小鸟》全系列游戏——这些都玩过,你就碉堡了~(版本一)
  14. 腾讯云Intel Xeon Cascade Lake 8255C(2.5 GHz)处理器性能评测
  15. 入冬的寒冷让人更精神
  16. 主板usb接口全部失灵_主机usb接口没反应,台式电脑usb接口全部失灵
  17. 一文看懂电容的种类及其在电路中的作用
  18. RS232/485串口转CANbus总线网关模块CAN232/485MB转换器CANCOM的简介
  19. 短序列比对利器-bwa
  20. 专访童小军:Hadoop是未来大数据的标准

热门文章

  1. HDU2018题求母牛数量C++
  2. C++变量命名规则和数据类型
  3. C语言常用的字符串函数
  4. C#读取与修改XML文档
  5. MySQL事务的回滚
  6. 今天悄悄的给你说几个HashCode的破事。
  7. 基于 Redis 实现的分布式锁
  8. Hexo+github搭建个人博客-博客初始化篇
  9. 蓝桥杯java第五届决赛第四题--排列序数
  10. 本地git和远程github连接完整教程