码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL索引下推


    索引下推,英文index condition pushdown。

    场景:使用二级索引(非聚集索引)查询的时候。

    索引:现在有一个二级索引(name,age)。

    sql:select * from t_user where name like '李*' and age = 23;

    无索引下推时:name列使用模糊查询,会使查询无法使用索引中name右边的列。查询在二级索引中用name去匹配,拿到主键后回表(聚集索引)查询所有符合条件的列,上述步骤由存储引擎完成,存储引擎将查询到的数据返回给服务器层,服务器层在内存构建临时表,然后用age进行过滤并得到符合条件的数据。

    无索引下推带来的问题:回表次数增多,引起性能下降。

    索引下推:即使name使用模糊查询,在二级索引匹配时也可以使用age,这样二级索引匹配到的主键可能会更少,回表的次数也会更少,提高了性能。

    其实很多限制都是由于存储引擎API设计导致的。

    mysql逻辑架构如下:

    在这里插入图片描述

    服务器层调用存储引擎的API来获取数据。

  • 相关阅读:
    Mybatis的collection三层嵌套查询(验证通过)
    RNA-seq 详细教程:分析准备(3)
    2022年--软件设计师下午题高频考点技巧总结
    Node.js 应用 peer dependency 的用法
    dll文件找不到,微软官方地址
    k8s控制器之Deployment第四弹之回滚Deployment
    当涉及到API接口数据分析时,主要可以从以下几个方面展开
    Kubernetes(k8s) Web-UI界面(二):部署和访问Kuboard
    芯驰D9评测(2)--系统环境配置连接
    glog与pugi::xml使用方法
  • 原文地址:https://blog.csdn.net/qq_35939417/article/details/129528747
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号