最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間: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 '工卡號(hào)',
  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é)點(diǎn)

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

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

案例一

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

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

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

案例二

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

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

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

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

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

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

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

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

相關(guān)文章

最新評論

新建县| 太仓市| 盐山县| 米林县| 大连市| 辽中县| 中江县| 加查县| 南木林县| 资溪县| 巧家县| 汶川县| 梧州市| 中牟县| 邹平县| 合肥市| 于田县| 高要市| 青海省| 崇阳县| 吉木萨尔县| 砚山县| 乐安县| 白银市| 托克逊县| 深水埗区| 明星| 年辖:市辖区| 天峻县| 三河市| 长葛市| 麻栗坡县| 金湖县| 开封市| 凯里市| 澜沧| 封丘县| 广东省| 溆浦县| 揭东县| 泽普县|