mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联

延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据。

为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针?

如果存的是物理地址指针不就不需要二次查找了吗,根据myisam和innodb数据存储方式的差异去想

Imyisam索引文件和数据文件是分离的,索引文件仅保存数据记录的地址。

而在InnoDB中,表数据文件本身就是按B+Tree组织的一个索引结构,这棵树的叶节点data域保存了完整的数据记录。

这个索引的key是数据表的主键,因此InnoDB表数据文件本身就是主索引。

innodb为了避免二次查找可以使用索引覆盖技术,无法使用索引覆盖的,就使用基于索引覆盖实现延迟关联;

一般查询:

order by col limit N,OFFSET M, MySQL 执行此类sql时需要先扫描到N行

select goods_id,name from sm_goods_all order by goods_id limit 1000000, 10

10 rows retrieved starting from 1 in 3s 611ms (execution: 3s 603ms, fetching: 8ms)

766e707a0a9bbd31560965825464a63e.png

延迟关联查询:

select g1.goods_id, g1.name fromsm_goods_all g1, (SELECT goods_id FROM sm_goods_all ORDER BY goods_id LIMIT 1000000, 10) g2where g1.goods_id=g2.goods_id

10 rows retrieved starting from 1 in 246ms (execution: 236ms, fetching: 10ms)

0f2465e6f0f12d41f318f50eaf893dcf.png

select goods_id,name fromsm_goods_allwhere goods_id >= (select goods_id from sm_goods_all order by goods_id asc limit 1000000,1)

limit10

10 rows retrieved starting from 1 in 246ms (execution: 234ms, fetching: 12ms)

b1b3b1dcb8df7a194cab55a0e5723a8c.png

数据量大的情况下,延迟关联比一般查询快了10陪

参考:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android之在笔记本电脑adb devices识别不了oppo A9手机(设备管理器ADB Interface里面有个黄色感叹号)

1 问题 记本电脑adb devices识别不了oppo A9手机(设备管理器ADB Interface里面有个黄色感叹号) 图片如下 2 分析 很明显这里是驱动问题,ADB Interface有感叹号提示,所以这里需要解决驱动问题 3 解决办法 1)可以尝试…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(六)精简魔法更强大

学习目标 了解对相似逻辑的简化编写——循环 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇:《假如编程是魔法之零基础看得懂的Python入门教程 》——(一)既然你选择了这系列教程那么我就要让你听得懂 第二篇:《假…

Tiny模板语言(VelocityPlus)初步入门

2019独角兽企业重金招聘Python工程师标准>>> 1 关于用户手册 本文主要介绍如何在模板中使用Tiny模板语言,通过查阅本手册,可以对Tiny模板语言 TTL(Tiny Template Language)的用法有一个较全面的认识,并学会如何有效地使用Tiny模板…

『技术群里聊些啥』.NET 如何计算文件 MD5 哈希

前言有网友在交流群中询问,文件 MD5 是全部读取到内存后计算出来的,还是拿到流就可以计算出来了:原理上来说,MD5 需要对全部内容做运算,所以应该是获取所有内容后再计算的。但是,如果全部读取到内存后再计算…

探索发现:平台云——云的新风向

本文讲的是探索发现:平台云——云的新风向,云主机,自2011年火热崛起之后,成为IDC行业替代VPS的完美系列,它的成功在于其相对于VPS的压倒性优势;而平台云凭借其的便捷的操作、实时监控和可视化服务,让站长们…

windows下配置mysql主从复制_Windows下MySQL主从复制的配置方法

MySQL主从复制允许将来自一个数据库(主数据库)的数据复制到一个或多个数据库(从数据库)。主数据库一般是实时的业务数据写入和更新操作,从数据库常用的读取为主。主从复制过程:1、主服务器上面的任何修改都会通过自己的 I/O tread(I/O 线程)保存在二进制…

【ArcGIS风暴】全国1:100万基础地理数据库获取及ArcGIS图幅完美拼接---以甘肃省为例

在日常工作中,如第三次全国国土调查、不动产登记等,我们总需要对图斑、线状等数据进行数据分幅、图幅拼接等操作。另外,日常学习工作中,无论是制图还是进行分析,都不可避免的需要使用一些基础地理数据,像行政边界、水系、道路、居民地等等,那么,这些基础地理数据有没有…

体验 .NET MAUI RC3 ,马上就要发布RTM

前言.NET MAUI 已经传了很久了, 5月10日,微软终于跟随 VS2022 17.3 预览版 发布了MAUI的候选版本 ,今天我们来体验一波。环境运行环境:.Net 6开发环境:VS2022 17.3 (必须是预览3)使用在安装了V…

WebApi的调用-3.Basic验证

webapi里的特性 /// <summary>/// Basic验证 /// </summary>/// <remarks>/// /// </remarks>public class BasicAuthorizeAttibute : AuthorizeAttribute{public override void OnAuthorization(HttpActionContext actionContext){var authori…

ats 字符集问题

2019独角兽企业重金招聘Python工程师标准>>> 架构很简单&#xff0c;nginx->ats->nginx 后端nginx有做内容替换&#xff0c;字符编码为gb2312&#xff0c;因为ats为utf8编码导致前端内容展示时进行了错误的替换&#xff0c;导致内容错乱。 如 治疗鼻窦炎---&g…

《零基础看得懂的C语言入门教程 》——(十三)socket服务端编写

一、学习目标 了解C语言的socket的概念了解C语言socket的使用方法完成C语言socket服务端 目录 C语言真的很难吗&#xff1f;那是你没看这张图&#xff0c;化整为零轻松学习C语言。 第一篇&#xff1a;&#xff08;一&#xff09;脱离学习误区 第二篇&#xff1a;&#xff0…

古董来了:1999年的物件,香港已经回归了,我都上初中了,那么你出生了吗?

受疫情的影响&#xff0c;哪都去不了&#xff0c;只能在家憋着&#xff08;为社会做贡献&#xff09;这种状态已经持续了将近两个月了。无聊至极的我&#xff0c;一天无所事事&#xff0c;只能是在家这儿瞅瞅&#xff0c;那儿看看&#xff0c;用一句诗经里面的话来形容我最合适…

.NET性能优化-为结构体数组使用StructLinq

前言本系列的主要目的是告诉大家在遇到性能问题时&#xff0c;有哪些方案可以去优化&#xff1b;并不是要求大家一开始就使用这些方案来提升性能。在之前几篇文章中&#xff0c;有很多网友就有一些非此即彼的观念&#xff0c;在实际中&#xff0c;处处都是开发效率和性能之间取…

《假如编程是魔法之零基础看得懂的Python入门教程 》——(七)我把魔法变成了积木

学习目标 了解魔法积木的使用——自定义函数了解魔法积木的结果反馈——自定义函数返回值了解魔法积木的原料传递——自定义函数传参了解魔法积木的类型分类——类与对象 推荐 1.《备受好评的看得懂的C语言入门教程》 目录 第一篇&#xff1a;《假如编程是魔法之零基础看得…

关于Activity的getReferrer():如何在Activity中获取调用者?

http://blog.csdn.net/u013553529/article/details/53856800 关于Activity的getReferrer()之一&#xff1a;如何在Activity中获取调用者&#xff1f; http://blog.csdn.net/u013553529/article/details/53882440 关于Activity的getReferrer()之二&#xff1a;调用者的包名是如何…

【遥感数字图像处理】实验:Erdas 软件的认识与使用

Erdas软件下载地址:《GISer福音来了:测绘地理信息类专业软件版本大全汇总下载!》 1.1 简介 ERDAS IMAGINE 是美国 ERDAS(Earth Resource Data Analysis System)公司开发的遥感图像处理系统,它以其先进的图像处理技术,友好、灵活的用户界面和操作方式,面向广阔应用领域…

import 别名_Python基础找茬系列09--import和from-import的引用区别

一、语法区别二、两种导包在内存上的区别一图看懂import与from-import的区别无论是使用import隐式导包还是form-import显示导包&#xff0c;整个模块都会被加载到内存中例如&#xff1a;from test import b,整个模块依旧进入内存&#xff0c;因为如果只有函数b进入内存&#xf…

设计一个限速器

限速器 (Rate Limiter) 相信大家都不会陌生&#xff0c;在网络系统中&#xff0c;限速器可以控制客户端发送流量的速度&#xff0c;比如 TCP, QUIC 等协议。而在 HTTP 的世界中&#xff0c; 限速器可以限制客户端在一段时间内发送请求的次数&#xff0c;如果超过设定的阈值&…

C语言新手的100个报错解法 已更新11个错误

学习目标 收藏文章报错可以过来查 [更新数据] 此文将会持续更新&#xff0c;收录错误信息&#xff0c;若本文没有收录记得联系我~ CSDN 1_bit 持续更新中… [发布日期&#xff1a;2020年11月16日 14:55:00] 更新&#xff1a; 暂无 C语言教程 C语言真的很难吗&#xff1f;那…

【遥感数字图像处理】实验:遥感图像显示与数据输入/输出(Erdas版)

一、实验平台&#xff1a;Erdas 9.1 二、实验内容&#xff1a;视窗功能简介、图形和图像显示操作、实用菜单操作、显示操作、AOI菜单操作、矢量和栅格菜单、数据的输入输出等。 三、实验目的&#xff1a;初步了解Erdas的主要功能模块&#xff0c;在此基础上&#xff0c;掌握视…