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

聚簇索引、非聚簇索引、回表、索引下推、覆盖索引

聚簇索引(主键索引)

非叶子节点上存储的是索引值,叶子节点上存储的是整行记录。

非聚簇索引(非主键索引、二级索引)

非叶子节点上存储的都是索引值,叶子节点上存储的是主键的值。非聚簇索引需要回表,IO消耗。

回表

非聚簇索引先执行一次主键查询,再通过适配的主键的值之后,再进行一次二级索引,这个过程就是回表。

覆盖索引

一次索引就可以得到数据,无需回表。覆盖索引发生在联合索引,where条件遵循最左匹配原则,order by条件需要满足联合索引所有条件,否则产生回表,这个IO消耗非常大。

索引下推

发生在联合索引,多个字段进行联合索引的时候,遵循最左匹配原则,只是在索引上进行匹配,也就是说不会产生回表,通常发生在like语句,查询计划,Using index condition就是索引下推技术。

经验:优化mysql的时候,当遇到至少百万级表的数据的情况下,通过减少回表次数来优化sql语句是一种常用的手段之一,只要保证正确使用联合索引那么效率自然不会低下。

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

相关文章:

  • ES实战-book笔记1
  • 高防服务器出租的优势及特点
  • NTLM||LM算法lsasswinlogon进程
  • transformer剪枝论文汇总
  • 使用 Ant Design 的 Upload 组件实现图片
  • 【知识图谱--第二讲知识图谱的表示】
  • C语言---计算n的阶乘
  • 材料非线性Matlab有限元编程:初应力法与初应变法
  • QT+OSG/osgEarth编译之八十二:osgdb_obj+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_obj)
  • [office] excel求乘积的公式和方法 #媒体#笔记#经验分享
  • OpenEuler20.03LTS SP2 上安装 OpenGauss3.0.0 单机部署过程(二)
  • 从零开始手写mmo游戏从框架到爆炸(十)— 集成springboot-jpa与用户表
  • Python算法题集_两两交换链表中的节点
  • 米贸搜|Facebook在购物季使用的Meta广告投放流程
  • 前端滚动组件分享
  • 【linux开发工具】vim详解
  • Compose | UI组件(十四) | Navigation-Data - 页面导航传递数据
  • 部署一个在线OCR工具
  • 【北邮鲁鹏老师计算机视觉课程笔记】01 introduction
  • maven依赖报错处理(或者maven怎么刷新都下载不了依赖)
  • [VulnHub靶机渗透] dpwwn: 1
  • Android14音频进阶:MediaPlayerService如何启动AudioTrack 下篇(五十六)
  • Python基础篇_修饰符(Decorators)【下】
  • C#,十进制展开数(Decimal Expansion Number)的算法与源代码
  • Vue3快速上手(一)使用vite创建项目
  • 使用navicat导出mysql离线数据后,再导入doris的方案
  • re:从0开始的CSS学习之路 1. CSS语法规则
  • npm install express -g报错或一直卡着,亲测可解决
  • 机器学习11-前馈神经网络识别手写数字1.0
  • vscode wsl远程连接 权限问题