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.pswp.cn/news/287717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287717.shtml
英文地址,請注明出處:http://en.pswp.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模板…

第十二周學習進度表

第十二周所花時間(包括上課)上課:4小時(2小時的實驗),周一:2小時,周三:3小時,周四:2小時,周五:2小時,周六、日…

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

前言有網友在交流群中詢問,文件 MD5 是全部讀取到內存后計算出來的,還是拿到流就可以計算出來了:原理上來說,MD5 需要對全部內容做運算,所以應該是獲取所有內容后再計算的。但是,如果全部讀取到內存后再計算…

【空間數據庫】ArcGIS地理空間數據庫GeoDatabase(GDB)概述及建立過程圖文詳解

地理數據庫(Geodatabase)是一種面向對象的數據模型,它對于地理空間特征的表達更接近我們對現實世界的認識。地理數據庫在一個公共模型框架下,對GIS處理和表達的空間特征,如適量、柵格、Tin、網絡等進行統一描述和存儲,是目前最先進的數據管理模式,本文介紹地理數據庫的概…

探索發現:平臺云——云的新風向

本文講的是探索發現:平臺云——云的新風向,云主機,自2011年火熱崛起之后,成為IDC行業替代VPS的完美系列,它的成功在于其相對于VPS的壓倒性優勢;而平臺云憑借其的便捷的操作、實時監控和可視化服務,讓站長們…

Android之運行app提示The application could not be installed: INSTALL_FAILED_TEST_ONLY

1、問題 筆記本新安裝的Android studio(版本3.5.2)運行最簡單的程序,錯誤提示如下 The application could not be installed: INSTALL_FAILED_TEST_ONLY 2、分析 高版本的Android studio里面AndroidManifest.xml文件默認如下 android:tes…

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…

129. Sum Root to Leaf Numbers

/** 129. Sum Root to Leaf Numbers * 2016-5-21 By Mingyang* dfs包含三種&#xff0c;這里是dfs的preorder方法&#xff0c;先解決根再是左右*/public int sumNumbers(TreeNode root) {return dfs(root, 0);}public int dfs(TreeNode root, int levelBase) {if (root null)r…

Android之Unexpected error while executing: am start -n “***.Activity“-a android.intent.action.MAIN

1 問題 編譯項目的時候&#xff0c;as錯誤提示如下 $ adb shell am start -n "package/package.***Activity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Unexpected error while executing: am start -n "package/package.***Activ…

古董來了:1999年的物件,香港已經回歸了,我都上初中了,那么你出生了嗎?

受疫情的影響&#xff0c;哪都去不了&#xff0c;只能在家憋著&#xff08;為社會做貢獻&#xff09;這種狀態已經持續了將近兩個月了。無聊至極的我&#xff0c;一天無所事事&#xff0c;只能是在家這兒瞅瞅&#xff0c;那兒看看&#xff0c;用一句詩經里面的話來形容我最合適…

.NET性能優化-為結構體數組使用StructLinq

前言本系列的主要目的是告訴大家在遇到性能問題時&#xff0c;有哪些方案可以去優化&#xff1b;并不是要求大家一開始就使用這些方案來提升性能。在之前幾篇文章中&#xff0c;有很多網友就有一些非此即彼的觀念&#xff0c;在實際中&#xff0c;處處都是開發效率和性能之間取…

Android Studio之提示Unable to delete directory ‘*****\MyApplication\app\build‘

1 問題 運行android studio 無論clean project還是rebuild project,提示如下 Unable to delete directory *****\MyApplication\app\buildFailed to delete some children. This might happen because a process has files open or has its working directory set in the tar…

《假如編程是魔法之零基礎看得懂的Python入門教程 》——(七)我把魔法變成了積木

學習目標 了解魔法積木的使用——自定義函數了解魔法積木的結果反饋——自定義函數返回值了解魔法積木的原料傳遞——自定義函數傳參了解魔法積木的類型分類——類與對象 推薦 1.《備受好評的看得懂的C語言入門教程》 目錄 第一篇&#xff1a;《假如編程是魔法之零基礎看得…