欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL索引優(yōu)化之分頁探索詳細(xì)介紹

 更新時間:2021年12月06日 11:13:09   作者:曉果凍阿  
大家好,本篇文章主要講的是MySQL索引優(yōu)化之分頁探索詳細(xì)介紹,感興趣的同學(xué)趕快來看看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

??MySQL??索引優(yōu)化之分頁探索

表結(jié)構(gòu)

CREATE TABLE `demo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '姓名',
  `age` int(11) NOT NULL DEFAULT '0' COMMENT '年齡',
  `position` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '職位',
  `card_num` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '工卡號',
  PRIMARY KEY (`id`),
  KEY `index_union` (`name`,`age`,`position`)
) ENGINE=InnoDB AUTO_INCREMENT=450003 DEFAULT CHARSET=utf8;

450003條數(shù)據(jù)

limit分頁執(zhí)行情況

MySQL索引優(yōu)化之分頁探索_子節(jié)點

像select * from demo limit 90000,10;考慮到回表,所以mysql干脆選擇全表掃描。

mysql不是直接從第90000行開始計算10條,而是從第一個葉子節(jié)點開始計數(shù),計算90010行。

案例一

MySQL索引優(yōu)化之分頁探索_分頁_02

針對上圖,當(dāng)id是連續(xù)自增的時候,可以用主鍵篩選出id=90000之后的數(shù)據(jù)。因為主鍵的索引是B+樹結(jié)構(gòu),本身就是有序的。

MySQL索引優(yōu)化之分頁探索_數(shù)據(jù)_03

案例二

MySQL索引優(yōu)化之分頁探索_數(shù)據(jù)_04

先按照name排序,然后再從第90000行起找10行,雖然name是索引,但select的列在index_union索引樹上并沒有保存。

所以還會涉及到回表,于是mysql直接選擇掃主鍵索引樹的葉子結(jié)點,先將40多萬數(shù)據(jù)根據(jù)name排好序,然后計算90000行+10行。

優(yōu)化方法:利用子查詢解決最消耗時間的排序和回表問題,聯(lián)合索引樹種保存有主鍵id,order by name的話可以將name、age、position整個索引充分使用因為確定了最左列的排序,其余的倆列age、和position其實也是

排好序的了,通過Extra字段也可以是使用了索引樹做排序。

最外層的查詢是根據(jù)主鍵來關(guān)聯(lián)的,所以幾乎可以忽略。10+10 因為id是主鍵,可以直接拿臨時表10條數(shù)據(jù)去掃。

MySQL索引優(yōu)化之分頁探索_分頁_05

到此這篇關(guān)于MySQL索引優(yōu)化之分頁探索詳細(xì)介紹的文章就介紹到這了,更多相關(guān)MySQL分頁探索內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL連接查詢你真的學(xué)會了嗎?

    MySQL連接查詢你真的學(xué)會了嗎?

    日常使用數(shù)據(jù)庫查詢語句時,單表查詢嘗嘗不能滿足項目的業(yè)務(wù)需求,在項目開發(fā)過程中,有很多需求都是要涉及到多表的連接查詢,這篇文章主要給大家介紹了關(guān)于MySQL連接查詢的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • centos 6.9安裝mysql的詳細(xì)教程

    centos 6.9安裝mysql的詳細(xì)教程

    這篇文章主要介紹了centos 6.9安裝mysql的詳細(xì)教程,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-07-07
  • Windows安裝MySQL8.0.x 版本教程

    Windows安裝MySQL8.0.x 版本教程

    這篇文章介紹了Windows安裝MySQL8.0.x 版本的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 抽取oracle數(shù)據(jù)到mysql數(shù)據(jù)庫的實現(xiàn)過程

    抽取oracle數(shù)據(jù)到mysql數(shù)據(jù)庫的實現(xiàn)過程

    今天小編就為大家分享一篇關(guān)于抽取oracle數(shù)據(jù)到mysql數(shù)據(jù)庫的實現(xiàn)過程,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • mysql數(shù)據(jù)庫插入速度和讀取速度的調(diào)整記錄

    mysql數(shù)據(jù)庫插入速度和讀取速度的調(diào)整記錄

    由于項目變態(tài)需求;需要在一個比較短時間段急劇增加數(shù)據(jù)庫記錄(兩三天內(nèi),由于0增加至4億)。在整個過程調(diào)優(yōu)過程非常艱辛
    2012-07-07
  • MySQL無法創(chuàng)建外鍵的原因及解決方法

    MySQL無法創(chuàng)建外鍵的原因及解決方法

    這篇文章主要介紹了MySQL無法創(chuàng)建外鍵的原因及解決方法,然后在文中給大家及時了MySQL無法創(chuàng)建外鍵、查詢外鍵的屬性知識,感興趣的朋友一起看看吧
    2017-10-10
  • MySQL與PHP的基礎(chǔ)與應(yīng)用專題之?dāng)?shù)據(jù)控制

    MySQL與PHP的基礎(chǔ)與應(yīng)用專題之?dāng)?shù)據(jù)控制

    MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL?AB?公司開發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL?是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,本系列將帶你掌握php與mysql的基礎(chǔ)應(yīng)用,本篇帶你了解數(shù)據(jù)控制
    2022-02-02
  • MySQL實例crash的案例詳細(xì)分析

    MySQL實例crash的案例詳細(xì)分析

    這篇文章主要給大家介紹了關(guān)于MySQL實例crash的相關(guān)資料,文中通過示例代碼的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • mysql占用CPU超過100%的詳細(xì)解決過程

    mysql占用CPU超過100%的詳細(xì)解決過程

    前段時間我的一個網(wǎng)站經(jīng)常打不開,通過檢查發(fā)現(xiàn)服務(wù)器cpu占用超過100%,通過top命令發(fā)現(xiàn)是mysql占用cpu特別高導(dǎo)致的,下面這篇文章主要給大家介紹了關(guān)于mysql占用CPU超過100%的詳細(xì)解決過程,需要的朋友可以參考下
    2023-10-10
  • Mysql批量插入數(shù)據(jù)時該如何解決重復(fù)問題詳解

    Mysql批量插入數(shù)據(jù)時該如何解決重復(fù)問題詳解

    之前寫的代碼批量插入遇到了問題,原因是有重復(fù)的數(shù)據(jù)(主鍵或唯一索引沖突),所以插入失敗,下面這篇文章主要給大家介紹了關(guān)于Mysql批量插入數(shù)據(jù)時該如何解決重復(fù)問題的相關(guān)資料,需要的朋友可以參考下
    2022-11-11

最新評論