成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

互聯網大廠面試:在MySQL中使用!=還能走索引嗎?

數據庫 MySQL
MySQL中有一個叫做優化器的東西,他會對每一條查詢sql做成本分析,然后根據分析結果選擇是否使用索引或者全表掃描。

一般情況下,我們會在一個索引上較多的使用等值查詢或者范圍查詢,此時索引大多可以幫助我們極快的查詢出我們需要的數據。

那當我們在where條件中對索引列使用!=查詢,索引還能發揮他的作用嗎?

以此SQL為例:

select * from t where k != 6;

MySQL會如何執行這個SQL呢?是直接全表掃描嗎?

其實,走不走索引,只取決于一個因素,那就是成本。

我們知道,MySQL中有一個叫做優化器的東西,他會對每一條查詢sql做成本分析,然后根據分析結果選擇是否使用索引或者全表掃描。

對于上面的sql,優化器會將k!=6轉化為兩個區間查詢(-∞,6)和(6,+∞),然后對索引樹進行成本計算。

我們畫一個簡略版的二級索引樹。

簡單解釋一下:每個顏色代表一個數據頁(MySQL與磁盤交互是以頁為單位,默認一個頁是16kb,這里我們假設一個頁存兩條數據,并且MySQL規定頁中的數據會有序排放并組成一個單向鏈表)。

對于一個普通的二級索引,葉子節點存儲是索引列和主鍵值,非葉子節點頁存儲是下方葉子節點的最小值和對應的頁地址。(葉子節點是有序的,對應的主鍵可不一定)

那么對于兩個區間查詢(-∞,6)和(6,+∞)意味著什么呢?

如果一個二級索引樹的數據簡化為12條數據,那么就有1-5,7-12共計11條數據要被掃描,然后進行11次回表。

也就是說,如果表中有120萬條數據,要回表110萬次。

emm,MySQL一看這么麻煩,還掃描什么二級索引樹啊,直接全表掃描走起吧。

那難道說,對于!=查詢就用不了索引了嗎?

非也。

如果數據集是下面這種,情況可能就不一樣了。

在這個索引樹上,索引值為6的占據了很大一部分,那么MySQL掃描成本就會大大降低了。

此時掃描的行數變成了1,10-12,共計3行。

相對于全表掃描,此時走二級索引樹掃描,顯然代價是比較低的。

也就是說,對于!=是否可以使用索引,要看具體的場景。

總結一下就是,MySQL判斷某個sql是否走索引,其實取決于成本分析。

如果使用二級索引的成本更低,MySQL就會傾向于使用二級索引。

如果使用二級索引掃描的行數占比過高,導致需要頻繁的回表,MySQL經過計算之后覺得走二級索引的代價太大了,就會使用全表掃描。

責任編輯:姜華 來源: 今日頭條
相關推薦

2019-10-25 15:50:06

MySQL數據庫命令

2021-12-16 10:32:04

APP會員互聯網大廠用戶

2022-01-05 16:45:22

互聯網裁員危機

2022-08-31 16:17:21

造芯互聯網公司大廠

2023-01-17 09:41:26

Redis接口限流

2020-02-23 17:39:21

互聯網復工公司

2021-12-14 15:27:48

互聯網程序員裁員

2022-06-01 20:24:25

互聯網元宇宙大廠

2011-09-05 13:59:15

中國網民互聯網

2021-11-22 10:03:47

互聯網薪資技術

2018-08-23 09:06:18

互聯網百度面試

2020-07-19 10:06:02

互聯網數據技術

2023-05-02 22:38:46

JVMJVM調優

2022-02-24 11:05:06

互聯網加班科技

2023-02-07 09:01:30

字符串類型MySQL

2021-06-28 08:57:29

快手騰訊員工

2022-01-24 10:46:40

互聯網裁員

2016-11-18 11:25:33

2019-12-09 16:09:00

互聯網

2023-12-11 14:20:00

系統緩存本地緩存
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品视频久久 | 国产精品久久久久久久久久免费看 | 99久久精品国产一区二区三区 | 密乳av| 国产精品亚洲成在人线 | 久久99精品国产麻豆婷婷 | 国产免费视频 | 日韩中文字幕一区二区 | 精品99久久久久久 | 亚洲网一区 | 免费成人午夜 | 国产亚洲一级 | 丁香久久 | 亚洲视频精品 | 亚洲精品一区二区三区蜜桃久 | 毛片网在线观看 | 在线观看黄免费 | 久久久av一区 | 日韩在线免费 | 日本三级全黄三级a | 一区欧美 | 在线婷婷 | 精品国产乱码久久久久久图片 | 成人亚洲精品久久久久软件 | 成人毛片网| 日韩精品一区二区三区在线观看 | va精品 | 成人国产精品免费观看 | 亚洲第一免费播放区 | 久久久精品黄色 | aaaa一级毛片| 亚洲精品视频在线看 | 日韩在线免费 | 成人在线免费观看视频 | 亚洲不卡av在线 | av大片在线观看 | 精品成人在线视频 | 亚洲精品无人区 | 午夜不卡一区二区 | 久久另类视频 | 精国产品一区二区三区四季综 |