当前位置: 首页 > news >正文

面试题:【数据库三】索引简述

目录

一、索引是什么

二、索引规则

三、索引失效场景


一、索引是什么

  • 索引是帮助Mysql高效获取数据的【数据结构】
  • 索引存储在文件系统中
  • 索引的文件存储形式与存储引擎相关
    • mysql有三种存储引擎
      • InnoDB
      • MyISAM
      • MEMORY
  • 索引文件的结构
    • Hash
      • Hash索引底层是哈希表,哈希表是一种以key-value存储数据的结构
      • 只支持等值查询,不适合范围查询,因为根据Hash表的排序,离的很近的值可能存在与不同的Hash表索引下。
    • 二叉树
      • 二叉树或者红黑树会因为树的深度过深而造成IO次数变多
    • B树
    • B+树

二、索引规则

最左前缀规则

三、索引失效场景

  • 声明
    • mysql优化器会判断执行【全表扫描】和【执行索引扫描】的效率,如果【全表扫描】效率高,那么mysql就不使用索引查询
  • like 
    • like '%abc':索引失效
    • like '%abc%':索引失效
    • like 'abc%':索引有效
  • 函数
    • 在where条件后面使用 【函数作为条件】:索引失效
  • in 和 not in
    • in:索引有效
    • not in:索引失效
  • or
    • or前后必须同时使用索引才生效
  • ​​​​​​​is null  和 is not null
    • ​​​​​​​​​​​​​​不一定生效、也不一定失效,同mysql的二级索引有关

http://www.lryc.cn/news/14279.html

相关文章:

  • 数据库必知必会:TiDB(12)TiDB连接管理
  • 电源大事,阻抗二字
  • ASE20N60-ASEMI的MOS管ASE20N60
  • nginx 代理01(持续更新)
  • 初阶C语言——操作符【详解】
  • 37k*16 薪,年后直接上岗,3年自动化测试历经3轮面试成功拿下阿里Offer....
  • 利用Rust与Flutter开发一款小工具
  • 零入门kubernetes网络实战-16->使用golang给docker环境下某个容器里添加一个额外的网卡
  • 音频信号处理笔记(二)
  • 钓鱼网站+bypassuac提权
  • 合并两个有序链表——递归解法
  • ADRC自抗扰控制总结
  • 3年工作之后是不是还在“点点点”,3年感悟和你分享....
  • 【自动化测试】web自动化测试验证码如何测?如何处理验证码问题?解决方案......
  • 面试浅谈之 C++ STL 篇
  • 【PTA Advanced】1144 The Missing Number(C++)
  • oracle的sqlnet.ora文件配置传输加密算法
  • RK3568存储性能测试
  • Homekit智能家居一智能灯泡
  • 轻量级 Java 权限认证框架——Sa-Token
  • 算法复习(四、五、六)
  • SORT与DeepSORT简介
  • TCP/IP网络编程——多播与广播
  • K8S DNS解析过程和延迟问题
  • 【JavaScript】js实现深拷贝的方法
  • RK3288 GPIO记录
  • MongoDB介绍及使用教程
  • 51单片机开发环境搭建 - VS Code 从编写到烧录
  • python datetime、字符串和时间戳之间的相互转换12小时制和24小时制时间相互转化
  • 百度百科词条怎么做?百度百科词条创建攻略分享